惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
L
LINUX DO - 最新话题
Help Net Security
Help Net Security
N
News | PayPal Newsroom
www.infosecurity-magazine.com
www.infosecurity-magazine.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Last Watchdog
The Last Watchdog
S
Security @ Cisco Blogs
W
WeLiveSecurity
C
CXSECURITY Database RSS Feed - CXSecurity.com
Webroot Blog
Webroot Blog
T
Troy Hunt's Blog
V
Vulnerabilities – Threatpost
Google Online Security Blog
Google Online Security Blog
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tor Project blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Darknet – Hacking Tools, Hacker News & Cyber Security
PCI Perspectives
PCI Perspectives
Google DeepMind News
Google DeepMind News
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
IT之家
IT之家
S
SegmentFault 最新的问题
J
Java Code Geeks
P
Privacy & Cybersecurity Law Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 【当耐特】
博客园_首页
H
Hacker News: Front Page
T
Threatpost
Jina AI
Jina AI
博客园 - Franky
月光博客
月光博客
L
LINUX DO - 热门话题
The Cloudflare Blog
H
Heimdal Security Blog
博客园 - 司徒正美
酷 壳 – CoolShell
酷 壳 – CoolShell
Cloudbric
Cloudbric
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
S
Secure Thoughts
T
Tenable Blog
I
Intezer
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

博客园 - 许雪里

人机Agent团队协同:从Managed Agents原理到Multica实践 AI规范编程:从SDD理念到Spec-Kit落地实践 开源AI Agent:OpenCode集成OMO原理及实践 AI编程实战:Claude Code + IDEA 的沉浸式编程方案 XXL-JOB v3.4.0 发布 | OpenClaw集成、合并调度、健壮性及体验增强 使用OpenClaw+Skill自动发布微信公众号文章 OpenClaw部署并集成QQ搭建自动化AI助理 使用Milvus搭配Ollama搭建RAG知识库 XXL-JOB v3.3.2 发布 | 优雅停机、Docker Compose、健壮性增强 XXL-CONF v2.2.0 | 分布式配置中心与注册中心 XXL-TOOL v2.4.0 发布 | 布隆过滤器、Excel流式读写、高性能BeanCopy XXL-JOB v3.3.1 发布 | 升级SpringBoot4、健壮性增强 XXL-JOB v3.3.0 | 分布式任务调度平台 XXL-TOOL v2.3.0 发布 | Java工具类库 XXL-TOOL v2.1.0 发布 | Java工具类库 XXL-JOB v3.2.0 | 分布式任务调度平台 XXL-BOOT v1.2.0 | 快速开发平台 XXL-CACHE v1.4.0 | 多级缓存框架 XXL-CRAWLER v1.5.0 | Java爬虫框架 XXL-SSO v2.0.0 发布|单点登录框架 XXL-TOOL v2.0.0 发布 | Java工具类库 XXL-TOOL v1.5.0 发布 | Java工具类库
使用XXL-SSO实现登录认证以及权限管控
许雪里 · 2025-08-15 · via 博客园 - 许雪里

本文指导如何使用 XXL-SSO 与实现 登录认证以及权限管控;通过实际项目(XXL-BOOT/快速开发平台)集成应用,进行详细讲解。

image

XXL-SSO简介

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

image

XXL-BOOT简介

XXL-BOOT 是一个快速开发平台,易学易用、灵活扩展、开箱即用。内置安全登录、权限管控、端到端代码生成、响应式布局、多语言、通告触达……等能力。整合前后端流行技术,致力为 中小企业、个人开发者 打造开箱即用的中后台解决方案。

XXL-SSO集成

补充说明:XXL-SSO 是一个 “渐进式” 登录及权限认证框架,从简单到复杂场景均提供支持,包括:单体系统、前后端分离、分布式系统、单点登录等。本文以“XXL-BOOT”项目集成讲解“单体系统”如何集成使用,更复杂场景建议参考官方文档以及提供Sample集成示例。

第一步:引入maven依赖

<dependency>
    <groupId>com.xuxueli</groupId>
    <artifactId>xxl-sso-core</artifactId>
    <version>${xxl-sso.version}</version>
</dependency>

第二步: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 客户端过滤排除路径,如 "/excluded/xpath"?"/excluded/xpath,/excluded/*"
xxl-sso.client.excluded.paths=
### xxl-sso 客户端登录页路径
xxl.sso.client.login.path=/auth/login

组件配置:主要进行 “拦截器注册” 以及基础框架组件初始化。

/**
 * 1、配置 XxlSsoBootstrap
 */
@Bean(initMethod = "start", destroyMethod = "stop")
public XxlSsoBootstrap xxlSsoBootstrap() {
    XxlSsoBootstrap bootstrap = new XxlSsoBootstrap();
    bootstrap.setLoginStore(loginStore);
    bootstrap.setTokenKey(tokenKey);
    bootstrap.setTokenTimeout(tokenTimeout);
    return bootstrap;
}
/**
 * 2、配置 XxlSso 拦截器
 */
@Override
public void addInterceptors(InterceptorRegistry registry) {
    // 2.1、build xxl-sso interceptor
    XxlSsoWebInterceptor webInterceptor = new XxlSsoWebInterceptor(excludedPaths, loginPath);
    // 2.2、add interceptor
    registry.addInterceptor(webInterceptor).addPathPatterns("/**");
}

第三步:登录/注销 功能集成

XXl-SSO提供丰富的登录、注销、登录态、角色/权限验证相关API。此处通过 “XxlSsoHelper.loginWithCookie、XxlSsoHelper.logoutWithCookie” 等API实现集成。

登录接口:

@RequestMapping(value="/doLogin", method=RequestMethod.POST)
@ResponseBody
@XxlSso(login=false)
public Response<String> doLogin(HttpServletRequest request, HttpServletResponse response, String userName, String password, String ifRemember){
    // 登录验证操作
    ...
        
    // XXL-SSO 登录
    LoginInfo loginInfo = new LoginInfo(String.valueOf(xxlBootUser.getId()), UUIDTool.getSimpleUUID());
    return XxlSsoHelper.loginWithCookie(loginInfo, response, ifRem);
}

注销接口:

@RequestMapping(value="/logout", method=RequestMethod.POST)
@ResponseBody
@XxlSso(login=false)
public Response<String> logout(HttpServletRequest request, HttpServletResponse response){
    // XXL-SSO 注销
    return XxlSsoHelper.logoutWithCookie(request, response);
}

第四步:XXL-SSO 接入使用 ( 集成RBAC 权限系统)

接入 XXL-SSO 之后,业务可通过 注解 or API 进行 登录验证、权限验证。一行注解/代码即可实现 登录认证、权限认证、角色认证 等,接入灵活方便;此处以 “注解方式” + “RBAC权限” 结合方式讲解(XXL-BOOT项目应用方式)。

  • XXL- SSO 接入管控 (认证 & 权限校验)

通过 “@XxlSso” 注解支持,提供“login、permission、role”等属性,用于控制登录认证、角色/权限认证等。

以如下接口为例,限制操作用户:必须登录,且拥有 “org:user” 权限。

@RequestMapping("/update")
@ResponseBody
@XxlSso(permission = "org:user")
public Response<String> update(HttpServletRequest request, HttpServletResponse response, XxlBootUserDTO xxlJobUser) {
    // xxl-sso “登录验证 + 权限验证”通过,获取登录用户信息
    Response<LoginInfo> loginInfoResponse = XxlSsoHelper.loginCheckWithCookie(request, response);
    ...
}
  • 用户权限动态(RBAC)控制:

XXL-BOOT内置基于RBAC权限管理能力,针对用户拥有的角色/权限进行动态管理。
image

更多可参考 XXL-SSO 与 XXL-BOOT 官方文档与Sample项目代码示例。