网站首页 > java教程 正文
XXL-SSO介绍
XXL-SSO 是一个开源的分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。拥有"轻量级、分布式、跨域、Cookie+Token均支持、Web+APP均支持"等特性,可以开箱即用。
特性
1、简洁:API直观简洁,可快速上手;
2、轻量级:环境依赖小,部署与接入成本较低;
3、单点登录:只需要登录一次就可以访问所有相互信任的应用系统。
4、分布式:接入SSO认证中心的应用,支持分布式部署;
5、HA:Server端与Client端,均支持集群部署,提高系统可用性;
6、跨域:支持跨域应用接入SSO认证中心;
7、Cookie+Token均支持:支持基于Cookie和基于Token两种接入方式,并均提供Sample项目;
8、Web+APP均支持:支持Web和APP接入;
9、实时性:系统登陆、注销状态,全部Server与Client端实时共享;
10、CS结构:基于CS结构,包括Server"认证中心"与Client"受保护应用";
11、记住密码:未记住密码时,关闭浏览器则登录态失效;记住密码时,支持登录态自动延期,在自定义延期时间的基础上,原则上可以无限延期;
12、路径排除:支持自定义多个排除路径,支持Ant表达式。用于排除SSO客户端不需要过滤的路径;
下载
源码仓库地址
- https://github.com/xuxueli/xxl-sso
- https://gitee.com/xuxueli0323/xxl-sso
SpringBoot集成XXL-SSO
一、部署认证中心
1、下载源码,我们可以直接将XXL-SSO源码中xxl-sso-server拿来当做认证中心使用,如下图所示:
2、运行xxl-sso-server,在浏览器访问localhost:8080/xxl-sso-server,如下图所示:
二、配置应用端
1、新建一个可以web页面访问的Module,加入xxl-sso核心jar包,如下图所示:
2、修改配置文件application.properties,服务端口要与认证中心配置不同,配置认证中心地址,redis配置需要和认证中心相同。如下图所示:
3、源码使用的是freemarker来演示登录成功的界面,需要需要在classpath:/templates目录下放入一个页面模板。配置完成后如下图所示:
4、创建xxl-sso配置类,设置基于cookie验证方式,如下图所示:
5、创建一个控制器Controller,登录成功跳转到登录成功的页面,也就是模板对应的页面。
6、运行应用端web项目,在浏览器访问localhost:8081/xxl-sso-web-sample-springboot/,如下图所示:
从浏览器的地址栏可以看到,没有登录时,访问应用端web项目直接重定向到认证中心的登录页面了。
验证演示
1、认证中心登录,如下图所示:
2、再次访问应用端web项目localhost:8081/xxl-sso-web-sample-springboot/,如下图所示:
3、访问localhost:8081/xxl-sso-web-sample-springboot/json查看登录状态,如下图所示:
4、在访问localhost:8081/xxl-sso-web-sample-springboot/的页面点击“登出”,如下图所示:
可以看到点击“登出”后,直接访问了认证中心的登录页面。再去之前打开的认证中心页面看看还是以前登录后的页面,F5刷新一下也变成了登录页面。
5、再次访问localhost:8081/xxl-sso-web-sample-springboot/json查看登录状态,如下图所示:
可以看到也是重定义到认证中心登录页面。
总结
通过演示我们更好的理解了单点登录的一次登录可以其他相关系统,一个系统注销,其他系统也都不能访问了。XXL-SSO还有其他基于token实现的单点登录,还有其他特性,有兴趣的朋友可以动动小手尝试一下。
猜你喜欢
- 2024-11-20 后端开发之多应用之间单点登录
- 2024-11-20 单点登陆常用的方式Oauth认证登录
- 2024-11-20 Python Web:如何通过JWT实现单点登录?
- 2024-11-20 4000字长文,带你了解单点登录
- 2024-11-20 SSO单点登录(三种实现方式)
- 2024-11-20 一次登录、便捷访问所有?聊聊CAS单点登录是如何实现的
- 2024-11-20 连环画解析“单点登录”原理,保证你能看懂
- 2024-11-20 CAS 单点登录简介
- 2024-11-20 springboot 集成cas5.3 实现sso单点登录
- 2024-11-20 ASP.NET中的单点登录
你 发表评论:
欢迎- 最近发表
-
- Java内存溢出紧急处理:10个必知的Linux命令快速定位OOM
- 面试常问的 25+ 个 Linux 命令(linux面试命令大全)
- Java堆外内存溢出紧急处理实战:Linux命令定位与Spring Boot解决
- java开发常用的Linux命令,高频的没你想象的多
- Java 应用 CPU 飙升?8 个 Linux 命令组合拳快速锁定异常线程
- Java 开发者线上问题排查常用的 15 个 Linux 命令
- Java程序员必备的Linux命令:让你的工作效率翻倍
- Java程序员必备的Linux命令全解析
- [超全整理] Java 程序员必备的 100 条 Linux 命令大全
- SAP ABAP资源导航(sap aatp)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)