XXL-SSO v1.2.0 发布|单点登录框架


Release Notes

  • 1、【重构】XXL-SSO 核心代码重构,基于“模块化”与“渐进式”设计思想,在轻量级、高扩展、渐进式的基础上,强化多登录类型、多认证方式等系统能力;
  • 2、【增强】渐进式:支持渐进式集成接入使用,从简单到复杂场景,包括:单体系统(Web常规登录)、复杂企业内多系统(CAS单点登录)、互联网多端&高并发系统(Native登录) 等,均可接入使用;
  • 3、【增强】多登录类型:
    • 登录态持久化组价(LoginStore):提供登录态/会话数据持久化能力;官方提供Cache、Redis等组件实现,可选用接入或自定义扩展;
    • 登录认证组件(Auth):提供系统登录/认证集成能力;官方提供 Filter(Servlet)和Interceptor(Spring)等实现,可选用接入或自定义扩展;
    • 登录用户模型(LoginInfo):提供统一登录用户模型,且模型支持扩展存储自定义扩展属性;
  • 4、【增强】多登录类型:
    • Web常规登录:适用于常规“单体系统”场景;限制相关Web系统部署在相同域名下,登录凭证存储在公共域名下;
    • Native登录:适用于“移动端、小程序、前后端分离、客户端”等系统场景;适用于无Cookie场景,天然不受限域名。支持多端登录、以及登录态共享,但是登录凭证需要客户端管理维护;
    • CAS单点登录:适用于“多系统跨域、企业多系统统一登录”等系统场景;解决了系统 跨域登录认证、统一登录认证 问题;但是需要单独部署CAS认证中心、提供单点登录相关基础能力;
  • 5、【新增】安全性:针对系统框架多个模块落地安全性设计,包括:登录Token安全设计、客户端登录凭证Cookie安全设计、CAS跳转Ticket安全设计 等;
  • 6、【优化】升级多项依赖至较新版本;

项目接入示例

XXL-SSO 作为单点登录框架,支持业务渐进式集成接入使用。结合系统及业务特征差异,仓库代码提供三种业务中接入示例:

  • 1、Web常规登录:适用于常规“单体系统”场景;限制相关Web系统部署在相同域名下,登录凭证存储在公共域名下;
  • 2、Native登录:适用于“移动端、小程序、前后端分离、客户端”等系统场景;适用于无Cookie场景,天然不受限域名。支持多端登录、以及登录态共享,但是登录凭证需要客户端管理维护;
  • 3、CAS单点登录:适用于“多系统跨域、企业多系统统一登录”等系统场景;解决了系统 跨域登录认证、统一登录认证 问题;但是需要单独部署CAS认证中心、提供单点登录相关基础能力;

此处以 “Web常规登录” 为例进行讲解: (*三种登录方式完整接入示例参考项目文档,如有需求可前往查看 *)

第一步:添加maven依赖以及 XXL-SSO 配置文件

### xxl-sso 登录凭证/token传输key, 用于cookie、header登录凭证传输;
xxl-sso.token.key=xxl_sso_token
### xxl-sso 登录凭证/token超时时间,单位毫秒;
xxl-sso.token.timeout=604800000
### xxl-sso 登录态持久化配置,如下为Redis组件相关配置;
xxl-sso.store.redis.nodes=127.0.0.1:6379
xxl-sso.store.redis.user=
xxl-sso.store.redis.password=
### xxl-sso 登录态存储,Redis key前缀
xxl-sso.store.redis.keyprefix=xxl_sso_user:
### xxl-sso 客户端过滤排除路径,如 "/excluded/xpath"?"/excluded/xpath,/excluded/*"
xxl-sso.client.excluded.paths=/weblogin/*,/static/**
### xxl-sso 客户端登录页路径
xxl.sso.client.login.path=/weblogin/login

第二部:配置 XXL-SSO 组件 配置组件代码参考:xxl-sso-sample-web/src/main/java/com/xxl/sso/sample/config/XxlSsoConfig

第三部:代码中接入使用

接入 XXL-SSO 之后,业务可通过 注解 or API 进行 登录验证、权限验证。一行注解/代码即可实现 登录认证、权限认证、角色认证 等,接入灵活方便;

  • 注解方式:
// a、限制需要登录(默认设置,等同于不配置注解),但是不针对权限、或角色进行校验;
@XxlSso 
@RequestMapping("/test")
@ResponseBody
public Response<String> test() {
...
} 

// b、不需要登录
@XxlSso(login = false)

// c、限制需要登录;限制需要拥有指定注解
@XxlSso(permission = "user:add")

// d、限制需要登录;限制需要拥有指定角色
@XxlSso(role = "admin")
  • API方式:
// a、登录操作:登录并获取登录凭证(token)。
Response<String> loginResult = XxlSsoHelper.login(loginInfo);
String token = loginResult.getData();

// b、登录信息更新操作:将会触发登录有效期续期;
Response<String> result = XxlSsoHelper.loginUpdate(loginInfo);

// c、注销操作:将会注销登录态;
Response<String> result = XxlSsoHelper.logout(token);

// d、登录态验证操作:将会验证登录态,返回已登录用户信息;
Response<LoginInfo> result = XxlSsoHelper.loginCheck(token);

// e、权限角色校验操作:校验登录用户是否拥有指定角色;
Response<String> result = XxlSsoHelper.hasRole(LoginInfo loginInfo, String role);

// f、权限项校验操作:校验登录用户是否拥有指定权限项;
Response<String> result = XxlSsoHelper.hasPermission(LoginInfo loginInfo, String permission);

项目简介

XXL-SSO 是一个 单点登录框架,只需要登录一次就可以访问所有相互信任的应用系统。具备 “轻量级、高扩展、渐进式” 的等特性,支持 “登录认证、权限认证、角色认证、分布式会话认证、单点登录、Web常规登录、前后端分离” 等多登录及认证类型,现已开放源代码,开箱即用。

文档地址

  • 中文文档:https://www.xuxueli.com/xxl-sso/
  • Github:https://github.com/xuxueli/xxl-sso

特性

  • 1、易用性:支持注解/API多方式接入,一行注解/代码即可实现 登录认证、权限认证、角色认证 等,接入灵活方便;
  • 2、轻量级:针对第三方组件、部署环境零依赖,部署及接入低成本、轻量级;
  • 3、高扩展:得益于模块化抽象设计,各框架组件可灵活扩展;可选用官方提供组件实现或自定义扩展。
    • 登录态持久化组价(LoginStore):提供登录态/会话数据持久化能力;官方提供Cache、Redis等组件实现,可选用接入或自定义扩展;
    • 登录认证组件(Auth):提供系统登录/认证集成能力;官方提供 Filter(Servlet)和Interceptor(Spring)等实现,可选用接入或自定义扩展;
    • 登录用户模型(LoginInfo):提供统一登录用户模型,且模型支持扩展存储自定义扩展属性;
  • 4、渐进式:支持渐进式集成接入使用,从简单到复杂场景,包括:单体系统(Web常规登录)、复杂企业内多系统(CAS单点登录)、互联网多端&高并发系统(Native登录) 等,均可接入使用;
  • 5、多登录类型:
    • Web常规登录:适用于常规“单体系统”场景;限制相关Web系统部署在相同域名下,登录凭证存储在公共域名下;
    • Native登录:适用于“移动端、小程序、前后端分离、客户端”等系统场景;适用于无Cookie场景,天然不受限域名。支持多端登录、以及登录态共享,但是登录凭证需要客户端管理维护;
    • CAS单点登录:适用于“多系统跨域、企业多系统统一登录”等系统场景;解决了系统 跨域登录认证、统一登录认证 问题;但是需要单独部署CAS认证中心、提供单点登录相关基础能力;
  • 6、多认证方式:
    • 登录认证:本质为验证用户身份的过程,目的是确认“你是谁”,确保访问者合法可信;
    • 权限认证:在用户身份认证通过后,校验用户是否具备访问特定资源的权限,决定“你能做什么”;认证维度是“权限”;
    • 角色认证:在用户身份认证通过后,校验用户是否具备访问特定资源的权限,决定“你能做什么”;认证维度是“角色”;
  • 7、分布式会话/认证:支持分布式登录以及会话认证,集成分布式系统可共享的 登录态持久化组价(LoginStore),可选用或参考官方RedisLoginStore;
  • 8、安全性:针对系统框架多个模块落地安全性设计,包括:登录Token安全设计、客户端登录凭证Cookie安全设计、CAS跳转Ticket安全设计 等;
  • 9、单点登录:针对CAS单点登录场景,提供单点登录及注销能力;
  • 10、跨域登录认证:针对CAS单点登录场景,支持跨域Web应用接入,解决了系统 跨域登录认证 问题;
  • 11、高可用/HA:针对CAS单点登录场景,CAS认证中心支持集群部署,并可借助LoginStore实现登录态共享,从而实现系统水平扩展以及高可用;
  • 12、多端登录认证:针对多端登录场景,如 Web、移动端、小程序 等多端,提供多端登录及认证能力;
  • 13、前后端分离:针对前后端分离系统,提供 Native登录 方案,支持前后端分离场景登录认证能力;
  • 14、记住密码:支持记住密码功能;记住密码时,支持登录态自动延期;未记住密码时,关闭浏览器则登录态失效;
  • 15、登录态自动延期:支持自定义登录态有效期窗口,当登录态有效期窗口过半时自动顺延一个周期;

相關推薦

2022-09-11

与统一维护管理的模块。 通知公告:系统通知公告信息发布维护。 代码生成:一键生成模块 CRUD 的功能,包括后端和前端 Vue 等相关代码。 案例演示:常规代码生成器一键生成后的演示案例。 开发者信息 软件名称:R

2023-01-30

自定义报表大屏【规划中】 认证控制功能优化,支持登录错误次数锁定,二次操作验证等【规划中】 Spring Cloud 版本【规划中】 🥞功能截图 | | | | | | | | | | | | | | | |  |  |  

2023-06-20

更新内容 增加beanstalk消费队列配套功能 修正优惠券Macro endif不匹配问题 修正创建提现账号问题 优化OfficeAccount语法结构 优化提现账号验证流程 优化课程等MeInfo信息 优化外部通知 注意事项 由于增加队列组件,

2023-06-07

业界领先的IAM-IDaas身份管理和认证产品 概述 MaxKey单点登录认证系统,谐音马克思的钥匙寓意是最大钥匙,是业界领先的IAM-IDaas身份管理和认证产品,支持OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM等标准协议,提供安全、标准和

2023-08-17

业界领先的IAM-IDaas身份管理和认证产品 概述 MaxKey单点登录认证系统,谐音马克思的钥匙寓意是最大钥匙,是业界领先的IAM-IDaas身份管理和认证产品,支持OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM等标准协议,提供安全、标准和

2023-10-13

业界领先的IAM-IDaas身份管理和认证产品 概述 MaxKey单点登录认证系统,谐音马克思的钥匙寓意是最大钥匙,是业界领先的IAM-IDaas身份管理和认证产品,支持OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM等标准协议,提供安全、标准和

2025-03-27

Pubkey项目,这意味着开发者现在可通过开源方式实现基于单点登录(SSO)的SSH密钥管理。 OPKSSH通过将OpenID Connect(OIDC)协议与SSH协议无缝结合,使企业能够利用现有身份提供商(如Google、Azure AD)直接管理SSH访问权限,彻底告

2022-11-18

,主要解决:登录认证、权限认证、分布式 Session 会话、单点登录、OAuth2.0 等一系列权限相关问题。 框架针对踢人下线、自动续签、前后台分离、分布式会话…… 等常见业务进行 N 多适配,通过 Sa-Token,你可以以一种极简的方

2023-03-24

业界领先的IAM-IDaas身份管理和认证产品 概述 MaxKey单点登录认证系统,谐音马克思的钥匙寓意是最大钥匙,是业界领先的IAM-IDaas身份管理和认证产品,支持OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM等标准协议,提供安全、标准和

2023-09-17

Wood v1.2.0 已经发布,微型 ORM 框架。 此版本更新内容包括: 增加代码生成接口(selectAsCmd, insertAsCmd, updateAsCmd, deleteAsCmd) 调整 ICacheService 接口(增加类型化 get) redisx 升为 1.2.0 详情查看:https://gitee.com/noear/wood/releases/v1

2023-04-14

⭐ 新功能及优化 [新增] 代码生成器添加tag页配置方式及选项 [新增] 添加迁移回滚命令 mine:migrate-rollback --name=模块名 [新增] 新增数据源功能,可以在代码生成器载入远程数据库的表结构到本地库 [新增] 新增获取每日必应背景图

2023-03-07

v1.2.0 更新内容: 1、升级代码生成器,生成模块时自动创建菜单和权限节点; 2、性能优化和底层架构调优; 一款 Go 语言基于 GoFrame、Vue、AntDesign、MySQL 等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开

2025-03-30

升级layui-v2.9.25 优化账号相关内容 去除文章和问题缓存重建 去除多余的文件引用 修正每日访问站点积分问题 限制全文搜索关键字长度 统一规划二维码样式 系统介绍 酷瓜云课堂内网版,采用C扩展框架Phalcon开发

2022-11-19

thapp.com/4/docs/framework/ 1,更新了oauthapp.1.9.8.js 脚本库 2,发布了API文档 开发常见问题: 用户如何登录我的应用? 自定义UI 通过写代码的方式,调用API 注册/登录,获取用户信息。 账号+密码 Web ID Union ID +平台标识 acces