当前位置: 首页 > news >正文

XXL-SSO简要说明

一、介绍

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

官方文档

二、集成

2.1、源码下载

下载地址

2.2、代码结构

在这里插入图片描述

2.3、修改server端配置

在这里插入图片描述

2.4、修改client端配置

在这里插入图片描述

2.5、配置说明

配置说明
xxl.sso.serverSSO Server端地址
xxl.sso.logout.path登出地址(当请求地址是该地址时,会自动出发过滤器中的逻辑,清除redis和cookie中的用户信息,但是退出之后跳转到的Server端登录页后面不携带本系统的地址,所以再次登录时无法正确跳转到本系统,而是进入Server端)
xxl-sso.excluded.paths路径排除Path,允许设置多个,且支持Ant表达式。用于排除SSO客户端不需要过滤的路径
xxl.sso.redis.addressredis address, like “{ip}”、“{ip}:{port}”、“{redis/rediss}😕/xxl-sso:{password}@{ip}:{port:6379}/{db}”;Multiple “,” separated

2.6、测试

2.6.1、分别启动Server端和Client端

Server端地址:http://127.0.0.1:8080/xxl-sso-server/
Client端地址:http://127.0.0.1:8081/xxl-sso-web-sample-springboot/

三、问题

3.1、客户端点击退出后,跳转到服务端,但是此时服务端的URL后并没有拼接客户端的地址,导致再次在服务端登录之后无法正常跳转到客户端

在这里插入图片描述

可以看到客户端中的XxlSsoWebFilter过滤器,也只是重定向到了服务端,并未拼接上客户端的地址信息

解决方案:直接请求服务端的退出逻辑,直接让前端请求服务端的logout接口,或者后端自己重定向到这个接口

3.2、样例无法启动

Exception in thread "main" java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')at org.springframework.boot.devtools.restart.DefaultRestartInitializer.getUrls(DefaultRestartInitializer.java:92)at org.springframework.boot.devtools.restart.DefaultRestartInitializer.getInitialUrls(DefaultRestartInitializer.java:56)at org.springframework.boot.devtools.restart.Restarter.<init>(Restarter.java:139)at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:575)at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:65)at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:44)at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122)at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:69)at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:47)at org.springframework.boot.SpringApplication.run(SpringApplication.java:292)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1082)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1071)at com.xxl.sso.server.XxlSsoServerApplication.main(XxlSsoServerApplication.java:13)
Disconnected from the target VM, address: '127.0.0.1:50178', transport: 'socket'

这里将POM中的热部署依赖移除便可以正常启动
在这里插入图片描述

四、总结

XXL-SSO的原理其实非常的简单
用户访问系统,如果没有登录会被重定向到服务端,在服务端进行登录,登录之后会将生成的认证信息存储在Cookie中,这样,同一个浏览器中的系统请求的时候都会携带上Cookie,这样就可以通过拦截器判断该用户是否登录,以此来实现单点登录的效果

XXL-SSO的集成非常简单,本身也非常的纯粹,没有过多的额外功能,所以登录部分的逻辑是需要自己开发的

http://www.lryc.cn/news/69748.html

相关文章:

  • HC-05蓝牙模块的使用
  • 初始python
  • C++入门预备语法
  • python发送email
  • 软件测试面试题自动化面经分享——这才是高薪的秘诀!
  • Ceph入门到精通-Centos8安装prometheus
  • 把树莓派改造成无线网卡(3)-----共享无线网络,无线网络转换成有线网络,让有线网络设备连上无线网络
  • NumPy
  • C++17完整导引-模板特性之类模板参数推导
  • CSS3小可爱亲吻表白特效,给你的五一假期增添点小乐趣
  • Samba CentOS 7 安装
  • Mac电脑 Vscode : Flutter 开发环境搭建(最细节教程)
  • BEVFormer 论文学习
  • 现在的00后,实在是太卷了,我们这些老油条都想辞职了......
  • shell 数组定义与使用
  • 24 KVM管理虚拟机-配置VNC-TLS登录
  • C++基础讲解第六期(多态、虚函数、虚析构函数、dynamic_cast、typeid纯虚函数)
  • 防火墙之iptables(二)
  • 亚马逊销量暴跌该如何查找原因?
  • Vue中的脚手架和路由
  • Convolutional Neural network(卷积神经网络)
  • 【资料分享】高边、低边晶体管开关及电路解析
  • 六级备考28天|CET-6|听力第二讲|长对话满分技巧|听写技巧|2022年6月考题|14:30~16:00
  • 计算机图形学 | 实验九:纹理贴图和天空盒
  • Unity A* Pathfinding Project
  • SpringBoot ( 一 ) 搭建项目环境
  • idea中关联Git
  • Java面试知识点(全)-分布式微服务-zookeeper面试知识点
  • (IDEA)springCloud项目导入本地jar包方法和项目打包时找不到引入本地jar包的问题解决方案
  • 非线性系统的线性化与泰勒级数