网站建设 销售人员,pc网站开发制作,2w网站建设模式,常见的渠道推广方式有哪些一、介绍 XXL-SSO 是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 拥有”轻量级、分布式、跨域、CookieToken均支持、WebAPP均支持”等特性。现已开放源代码#xff0c;开箱即用。 官方文档
二、集成
2.1、源码下载
下载地址
2.2、代码结构…一、介绍 XXL-SSO 是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 拥有”轻量级、分布式、跨域、CookieToken均支持、WebAPP均支持”等特性。现已开放源代码开箱即用。 官方文档
二、集成
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的集成非常简单本身也非常的纯粹没有过多的额外功能所以登录部分的逻辑是需要自己开发的