Springboot2.X如何解决单点登陆
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这期内容当中小编将会给大家带来有关Springboot2.X如何解决单点登陆,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、pom文件依赖 com.maji
千家信息网最后更新 2025年12月02日Springboot2.X如何解决单点登陆
这期内容当中小编将会给大家带来有关Springboot2.X如何解决单点登陆,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
1、pom文件依赖
com.majiaxueyuan sso-core 1.2.2
2、sso配置文件
由于使用的是springboot2.2.0版本,所以配置需要实现WebMvcConfigurer
import com.majiaxueyuan.sso.core.filter.MaJiaSSOIntercepter;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;/** * @Author:MuJiuTian * @Description: 单点登陆配置WebMvcConfigurer * @Date: Created in 下午5:34 2019/10/21 */@Configurationpublic class SsoConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(ssoIntercepter()).addPathPatterns("/**"); } @Bean public MaJiaSSOIntercepter ssoIntercepter() { return new MaJiaSSOIntercepter().setTokenSalt("pwd_salt"); }}如果是其他版本可以使用集成WebMvcConfigurerAdapter
import com.majiaxueyuan.sso.core.filter.MaJiaSSOIntercepter;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;/** * @Author:MuJiuTian * @Description: 单点登陆配置WebMvcConfigurerAdapter * @Date: Created in 下午5:34 2019/10/21 */@Configurationpublic class SsoConfig extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(ssoIntercepter()).addPathPatterns("/**"); } @Bean public MaJiaSSOIntercepter ssoIntercepter() { return new MaJiaSSOIntercepter().setTokenSalt("pwd_salt"); }}3、实体类
@Data@AllArgsConstructor@NoArgsConstructorpublic class User { private int userId; private String slat; private String account; // ....其他的字段就不写了}4、service逻辑层
/** * @Author:MuJiuTian * @Description: 简单测试,我就不写接口了,直接以class的形式 * @Date: Created in 下午5:47 2019/10/21 */@Servicepublic class LoginService { public User checkUser(String account, String pwd){ // 做假数据,加入密码登陆成功,返回user实体类 return new User(1,account,"ewdsbj"); }}5、controller层
import com.majiaxueyuan.sso.core.annotation.NoToken;import com.majiaxueyuan.sso.core.constans.Result;import com.majiaxueyuan.sso.core.helper.TokenLoginHelper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;/** * @Author:MuJiuTian * @Description: 测试单点登录框架 * @Date: Created in 下午5:25 2019/10/21 */@RestControllerpublic class LoginController { @Autowired LoginService loginService; @GetMapping(value = "/testToken") public String testToken() { return "需要token"; } @GetMapping(value = "/login") @NoToken(notNeedToken = true) public String login(String account, String password) { // 测试用户输入的用户名、密码是否正确 User user = loginService.checkUser(account, password); if (user == null){ return "密码错误"; } // 如果密码成功后,获取用户主键id、以及注册时的salt Long user_id = Long.valueOf(user.getUserId()); String salt = user.getSlat(); // 然后通过sso-core框架获取token Result loginSuccess = TokenLoginHelper.loginSuccess(user_id,account,"",salt); // 获取token String token = ""; if (loginSuccess.getCode() == 200){ token = loginSuccess.getData().toString(); } return token; }}6、测试
测试接口1:
测试接口2:
7、获取request用户对象
用户获取到Token之后,返回给前端,前端携带时需要将Token添加到Header中的Authorization字段。当前强制使用此请求头字段,这些数据存储headers中带过来检测token是否过期或者登陆...情况。
SSOUser user = (SSOUser) request.getAttribute("ssoUser");8、@NoToken
当有某个请求不需要认证即可访问时,在此请求方法上添加注解@NoToken,不加注解需要验证,只要加上注解就表示不需要认证,不管@NoToken(notNeedToken = true)还是@NoToken(notNeedToken = false),都不需要验证,至少在目前最新1.2.2版本是这样。
上述就是小编为大家分享的Springboot2.X如何解决单点登陆了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
登陆
测试
单点
密码
用户
配置
字段
接口
注解
版本
成功
内容
前端
实体
数据
文件
框架
分析
认证
验证
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全作文350字四年级
迷你数据库和普通数据库
雕龙中日古籍数据库
中国硕士论文数据库
安卓软件开发用java吗
哈利波特魔法觉醒在哪看服务器
互联网科技实习生岗位职责
电力系统网络安全的定义
电子软件开发工程师的优点
学习软件开发需要先学什么
东莞金融软件开发费用是多少
怎样改csgo的服务器
网络安全高中生论文
搞网络安全工程
提升网络安全具有重要的意义
新建数据库目录在哪个文件夹
删除数据库某个字段的数据
软件开发最新技术和框架教程
如何衡量it软件开发量
孝感网络安全宣传周
2020网络安全宣传折页
光伏监控软件开发公司
合肥星蓝软件开发
服务器怎么生成dns
国外服务器羊毛
河北日报网络安全小组
无法找到指定主机的服务器
堡垒服务器ping不通
兰州诚信软件开发
怎么从事网络安全的工作