专业的JAVA编程教程与资源

网站首页 > java教程 正文

SpringBoot集成xxl-sso实现单点登录

temp10 2024-11-20 21:46:03 java教程 12 ℃ 0 评论

XXL-SSO介绍

XXL-SSO 是一个开源的分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。拥有"轻量级、分布式、跨域、Cookie+Token均支持、Web+APP均支持"等特性,可以开箱即用。

特性

SpringBoot集成xxl-sso实现单点登录

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实现的单点登录,还有其他特性,有兴趣的朋友可以动动小手尝试一下。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表