当前位置: 首页 > 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的集成非常简单,本身也非常的纯粹,没有过多的额外功能,所以登录部分的逻辑是需要自己开发的

相关文章:

XXL-SSO简要说明

一、介绍 XXL-SSO 是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 拥有”轻量级、分布式、跨域、CookieToken均支持、WebAPP均支持”等特性。现已开放源代码&#xff0c;开箱即用。 官方文档 二、集成 2.1、源码下载 下载地址 2.2、代码结构…...

HC-05蓝牙模块的使用

我最近刚刚开始学习嵌入式&#xff0c;在第一次使用蓝牙模块HC-05的时候遇到了很多问题&#xff0c; 甚至连接线都不会&#xff0c;因此下面我会十分详细地介绍我一步一步探索的步骤&#xff0c;直到完成使用手机APP和51单片机收发数据。 调试步骤 首先&#xff0c;我们需要明…...

初始python

初始python 缘由 ​ 对于python&#xff0c;相比大家并不陌生&#xff0c;Python是一种高级的、解释性编程语言&#xff0c;它具有简洁的语法和强大的内置函数&#xff0c;适用于广泛的应用领域&#xff0c;例如运维,Web开发&#xff0c;数据科学&#xff0c;人工智能等。Pyt…...

C++入门预备语法

C入门预备语法 C关键字命名空间C输入&输出初步缺省参数函数重载引用内联函数auto和范围for&#xff08;C11&#xff09;指针空值nullptr C关键字 命名空间 命名空间是一种将变量名、函数名、类名和库名称等封装到一个命名空间域中&#xff0c;与其他域的同名量相隔离&…...

python发送email

通过第三方SMTP发送纯文本邮件 #!/usr/bin/python -- coding: UTF-8 -- import smtplib from email.mime.text import MIMEText from email.header import Header 第三方 SMTP 服务 mail_host“smtp.XXX.com” #设置服务器 mail_user“XXXX” #用户名 mail_pass“XXXXXX” …...

软件测试面试题自动化面经分享——这才是高薪的秘诀!

Hello&#xff0c;你们的好朋友来了&#xff01;今天猜猜我给大家带来点啥干货呢&#xff1f;最近很多小伙伴出去面试的时候经常会被问到跟自动化测试相关的面试题。所以&#xff0c;今天特意给大家整理了一些经常被公司问到的自动化测试相关的面试题。停&#xff0c;咱先收藏起…...

Ceph入门到精通-Centos8安装prometheus

普罗米修斯是一个开源的监控、查询和警报工具。最初由Soundcloud于2012年构建,功能丰富的工具已被多家公司采用,用于监控其IT基础架构并确保所有系统平稳运行。Prometheus 允许您通过 HTTP 协议查询和提取时间序列指标,例如 CPU 和内存利用率,并在实时图表上可视化它们。您…...

把树莓派改造成无线网卡(3)-----共享无线网络,无线网络转换成有线网络,让有线网络设备连上无线网络

本文目录 1、准备工作2、安装DNS和配置管理软件3、设置网络路由功能3.1、树莓派的有线网络接口IP配置3.2、启用路由和IP伪装3.3、为有线网络配置DHCP和DNS服务 4、运行5、进阶--将二个以太网口加入到同一个网桥 现在的无线路由器非常便宜&#xff0c;所以实际上除了有特殊的要求…...

NumPy

目录 1、NumPy简介 2、利用元组、列表创建多维数组 3、数组索引 4、数组裁切 4.1、一维数组操作 4.2、二维数组操作 5、数据类型 6、副本/视图 7、数组形状 8、数组重塑 9、多维数组的迭代 10、数组连接 10.1、使用concatenate() 函数进行数组连接 10.2、使用堆栈…...

C++17完整导引-模板特性之类模板参数推导

模板特性之类模板参数推导 使用类模板参数推导默认以拷贝方式推导推导lambda的类型没有类模板部分参数推导使用类模板参数推导代替快捷函数 推导指引使用推导指引强制类型退化非模板推导指引推导指引VS构造函数显式推导指引聚合体的推导指引标准推导指引pair和tuple的推导指引从…...

CSS3小可爱亲吻表白特效,给你的五一假期增添点小乐趣

马上五一假期了&#xff0c;小伙伴们是不是都准备出去旅游呢&#xff0c;或者回老家陪陪父母。今天我用CSS3制作一个小可爱亲吻表白的特效&#xff0c;来给你即将到来的五一假期增添点小小的乐趣。 目录 实现思路 左边小可爱的实现 右边小可爱的实现 左右摇摆动效的实现 右…...

Samba CentOS 7 安装

安装步骤 Samba是在Linux与Windows系统间共享文件和打印机的标准协议。要在CentOS上安装Samba,可以按以下步骤操作: 安装Samba相关包: yum install samba samba-client samba-common创建Samba配置文件/etc/samba/smb.conf: vim /etc/samba/smb.conf添加如下配置: [global]…...

Mac电脑 Vscode : Flutter 开发环境搭建(最细节教程)

参考链接&#xff1a; MacVSCode安装flutter环境_mac vscode配置flutter_GalenWu的博客-CSDN博客 mac搭建Flutter环境以及初始化项目 - 简书 注意&#xff1a; *下载xcode 就包含git了, *苹果芯片和intel 芯片需要的环境不同&#xff0c;苹果芯片需要安装&#xff1a; Im…...

BEVFormer 论文学习

1. 解决了什么问题&#xff1f; 3D 视觉感知任务&#xff0c;包括基于多相机图像的 3D 目标检测和分割&#xff0c;对于自动驾驶系统非常重要。与基于 LiDAR 的方法相比&#xff0c;基于相机图像的方法能够检测到更远距离的目标&#xff0c;识别交通信号灯、交通标识等信息。有…...

现在的00后,实在是太卷了,我们这些老油条都想辞职了......

现在的小年轻真的卷得过分了。前段时间我们公司来了个00年的&#xff0c;工作没两年&#xff0c;跳槽到我们公司起薪20K&#xff0c;都快要超过我了。 后来才知道人家是个卷王&#xff0c;从早干到晚就差搬张床到工位睡觉了。 最近和他聊了一次天&#xff0c;原来这位小老弟家…...

shell 数组定义与使用

一维数组 数组定义 array_name(value1 value2 ... value)也可以使用数字下表来定义数组 array_name[0]value0 array_name[1]value1 array_name[2]value2读取数组 ${array_name[index]}实例1 [rootiZj6c3slqbp8xuu2w3i4roZ devops]# cat array_name.sh #!/usr/bin/bashmy_…...

24 KVM管理虚拟机-配置VNC-TLS登录

文章目录 24 KVM管理虚拟机-配置VNC-TLS登录24.1 概述24.2 操作步骤 24 KVM管理虚拟机-配置VNC-TLS登录 24.1 概述 VNC服务端和客户端默认采用明文方式进行数据传输&#xff0c;因此通信内容可能被第三方截获。为了提升安全性&#xff0c;openEuler支持VNC服务端配置TLS模式进…...

C++基础讲解第六期(多态、虚函数、虚析构函数、dynamic_cast、typeid纯虚函数)

C基础讲解第六期 代码中也有对应知识注释&#xff0c;别忘看&#xff0c;一起学习&#xff01; 一、多态1. 问题引出2. 多态的概念和使用3. 多态的原理4. 虚析构函数5. 动态类型识别(dynamic_cast)(1) 自定义类型(2). dynamic_cast(3). typeid 6. 纯虚函数 纯虚函数需要补充 一…...

防火墙之iptables(二)

防火墙之iptables&#xff08;二&#xff09; 一.SNAT原理与应用 1.应用环境 局域网主机共享单个公网IP地址接入Internet&#xff08;私网不能被Internet中正常路由&#xff09;2.SNAT原理 修改数据包的源地址内网访问外网 将从内网发送到外网的数据包的源IP由私网IP转换成…...

亚马逊销量暴跌该如何查找原因?

很多卖家经常遇到一个棘手的问题&#xff0c;就是突然会遇到链接销量暴跌的问题。 比如之前链接可以稳定出单10多单的&#xff0c;突然连续几天只有两三单&#xff0c;这到底是什么原因呢? 1.查看链接的类目是否被修改 这个类目修改不一定是卖家自己修改&#xff0c;更多的时…...

YOLOv13 前瞻:YOLO 最新改进方向与模块预测(独家分析)

YOLOv13 真的来了吗&#xff1f;如果来了&#xff0c;它会是什么样子&#xff1f; 这是2026年以来&#xff0c;目标检测圈里最热的一个话题。根据 CSDN 社区 2026 年 1-3 月的讨论热度统计&#xff0c;“YOLOv13”相关关键词的搜索量在短短三个月内增长了近 5 倍&#xff0c;开…...

Qwen3-14B-Int4-AWQ在人工智能教学中的应用:交互式机器学习概念解释器

Qwen3-14B-Int4-AWQ在人工智能教学中的应用&#xff1a;交互式机器学习概念解释器 1. 让AI教学变得生动有趣 想象一下&#xff0c;当你第一次听到"卷积神经网络"这个词时是什么感觉&#xff1f;对大多数学生来说&#xff0c;这些专业术语就像一堵高墙&#xff0c;把…...

边走边聊 Python 3.8:Chapter 3:控制流与循环

Chapter 3:控制流与循环 程序的逻辑由控制流决定,而循环则让程序拥有“重复的力量”。本章将带你理解 if、for、while 背后的思维方式,掌握 Python 独有的 for-else 结构,并通过实际案例让你真正体会“程序为什么这样走”。当你能控制程序的节奏,你就能让代码按你的意图行…...

【基于Python技术的智慧中医商业项目】后端应用Articles代码实现(四)

后台文章接口一旦缺少统一的权限边界与查询约束,常见风险集中在未审核内容被暴露、分页与筛选口径不一致、详情阅读数更新链路出错,表现为列表数据异常、详情访问抖动、统计数据不可信。 内容围绕文章应用的 views 与 urls 两段链路拆解,聚焦分页与筛选参数、只读视图集的查…...

G-Helper:重构华硕设备性能管理的轻量级解决方案 | 玩家与商务人士必备工具

G-Helper&#xff1a;重构华硕设备性能管理的轻量级解决方案 | 玩家与商务人士必备工具 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, …...

Swin2SR在Linux系统下的部署与优化指南

Swin2SR在Linux系统下的部署与优化指南 本文详细讲解如何在Linux系统中部署和优化Swin2SR超分辨率模型&#xff0c;从环境配置到性能调优&#xff0c;提供完整的实践指南。 1. 引言 如果你正在寻找一种方法让低分辨率图像变得清晰锐利&#xff0c;Swin2SR可能是你需要的解决方…...

Qwen3.5-9B-AWQ-4bit电路仿真辅助:Multisim设计文档自动生成

Qwen3.5-9B-AWQ-4bit电路仿真辅助&#xff1a;Multisim设计文档自动生成 1. 电子工程师的文档痛点 硬件设计工程师每天都要面对一个耗时又不得不做的工作——撰写电路设计文档。从电路原理说明到元器件清单&#xff0c;从测试步骤到注意事项&#xff0c;这些文档不仅要求专业…...

打造沉浸式智能AI问答助手:Vue + UniApp 全端实战(支持 Markdown/公式/多模态交互)畔

OCP原则 ocp指开闭原则&#xff0c;对扩展开放&#xff0c;对修改关闭。是七大原则中最基本的一个原则。 依赖倒置原则&#xff08;DIP&#xff09; 什么是依赖倒置原则 核心是面向接口编程、面向抽象编程&#xff0c; 不是面向具体编程。 依赖倒置原则的目的 降低耦合度&#…...

[特殊字符] 《网络知识和Servlet重点知识整理》

一、网络作用&#xff08;基础认知&#xff09; 核心作用&#xff1a;实现不同设备之间的数据传输与通信&#xff0c;支撑互联网应用&#xff08;网页、APP、游戏、视频等&#xff09;。 信息传递&#xff1a;客户端 ↔ 服务器 资源共享&#xff1a;文件、数据库、计算资源 分…...

深入解析MIPI RFFE接口:从寄存器操作到实战技巧

1. MIPI RFFE接口基础入门 第一次接触MIPI RFFE接口时&#xff0c;我也被它简单的两根线设计给"骗"了。表面上看就是个普通的串行接口&#xff0c;但实际开发中遇到的坑可不少。RFFE全称RF Front-End Control Interface&#xff0c;是MIPI联盟专门为射频前端模块设计…...