JAVA全系列 教程
3762个小节阅读:7089.5k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
有时候出于安全的目的,我们会规定在同一个系统中,只允许一个用户在一个终端上登录,这就是对会话的并发控制。会话的并发控制有两种策略:
我们可以在SecurityConfig配置类中,通过maximumSessions()方法来置单个用户允许同时在线的最大并发会话数,如果没有额外配置,重新登录的会话会踢掉旧的会话。
xxxxxxxxxx
// 会话配置
http.sessionManagement(session ->{
// 会话失效跳转的页面
// session.invalidSessionUrl("/login");
// 会话失效处理器
session.invalidSessionStrategy(new MyInvalidSessionStrategy());
//最大并发会话数,设置单个用户允许同时在线的最大会话数,重新登录的会话会踢掉旧的会话.
session.maximumSessions(1);
});
如果我们已经有一个用户登录了,这时候这个相同的账号信息还想再次登录,我们可以阻止新用户登录,配置方式如下:
xxxxxxxxxx
// 会话配置
http.sessionManagement(session ->{
// 会话失效跳转的页面
// session.invalidSessionUrl("/login");
// 会话失效处理器
session.invalidSessionStrategy(new MyInvalidSessionStrategy());
//当会话达到最大值时,是否保留已经登录的用户,默认为false
session.maximumSessions(1).maxSessionsPreventsLogin(true);
});