V2EX 9小时前
[程序员] XXL-SSO v1.2.0 发布|单点登录框架
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

XXL-SSO 是一款轻量级、高扩展、渐进式的单点登录框架,旨在简化多系统间的身份认证和授权管理。它支持多种登录类型,包括 Web 常规登录、Native 登录和 CAS 单点登录,能够适应从单体系统到复杂企业内多系统、互联网多端高并发等各种场景。框架采用模块化设计,易于接入和扩展,提供注解和 API 两种方式进行集成,简化了登录认证、权限认证和角色认证的实现。此外,XXL-SSO 还注重安全性设计,对登录 Token、Cookie 及 CAS 跳转 Ticket 等进行了安全加固,并支持分布式会话认证和高可用部署,为用户提供安全、便捷的单点登录解决方案。

🚀 **模块化与渐进式设计**:XXL-SSO 核心代码重构,遵循模块化与渐进式设计理念,实现了轻量级、高扩展性,并能逐步适应从简单到复杂的各种集成场景,包括单体系统、企业内多系统以及互联网多端高并发系统。

🌐 **多登录类型支持**:框架提供多种登录方式以满足不同应用场景的需求。Web 常规登录适用于同域名下的单体系统;Native 登录支持无 Cookie 场景下的移动端、小程序、前后端分离系统,并允许客户端管理登录凭证;CAS 单点登录则专为解决多系统跨域、企业统一登录问题而设计,但需单独部署 CAS 认证中心。

🔑 **灵活的认证与集成方式**:XXL-SSO 允许通过简单的注解或 API 调用即可实现登录认证、权限认证和角色认证,极大地提高了开发效率和集成便捷性。用户还可根据需求扩展登录用户模型,并灵活选用或自定义登录态持久化和认证组件。

🔒 **强化安全性设计**:该框架在多个模块中落地了安全性设计,包括登录 Token 的安全、客户端登录凭证 Cookie 的安全以及 CAS 跳转 Ticket 的安全,确保了用户登录信息的安全可靠。

💡 **丰富的特性与应用场景**:XXL-SSO 支持分布式会话认证、多端登录认证、前后端分离场景下的认证,并具备记住密码和登录态自动延期功能。其开源特性使其成为企业级应用中实现单点登录的理想选择。

Release Notes

项目接入示例

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

此处以 “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:6379xxl-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")@ResponseBodypublic Response<String> test() {    ...}               // b 、不需要登录@XxlSso(login = false)                // c 、限制需要登录;限制需要拥有指定注解@XxlSso(permission = "user:add")    // d 、限制需要登录;限制需要拥有指定角色@XxlSso(role = "admin")                
// 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 常规登录、前后端分离” 等多登录及认证类型,现已开放源代码,开箱即用。

文档地址

特性

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

XXL-SSO 单点登录 SSO 身份认证 权限管理
相关文章