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: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")
// 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 常规登录、前后端分离” 等多登录及认证类型,现已开放源代码,开箱即用。
![]() |
1
8820670 5 天前 via Android
最近一直在给我的一个小社区论坛找一个 sso 的轻量级“平台”,一直找不到,casdoor 太重了。op 发的这个翻了一下还是框架,太难找到合适的了。
|