session管理
session超时处理
直接在配置文件配置
server:
servlet:
session:
timeout: 10
SpringBoot的默认的session过期时间最少为1分钟。session失效跳转地址,在security配置中进行配置。
session并发控制(一个账号只在一个平台登录)
在chrom登录用户,再在火狐浏览器登录时,会顶掉在chrom登录的账号。
在security的权限配置中,调用HttpSecurity的 maximumSessions的方法进行最大session数设置。
通过expiredSessionStrategy方法进行失效处理。
maximumSessions(1)
.expiredSessionStrategy(new ImoocExpiredSessionStrategy())
public class ImoocExpiredSessionStrategy implements SessionInformationExpiredStrategy {
@Override
public void onExpiredSessionDetected(SessionInformationExpiredEvent event) throws IOException, ServletException {
event.getResponse().setContentType("application/json;charset=UTF-8");
event.getResponse().getWriter().write("并发登录!");
}
}
当用户已经在chrom登录时,不希望在别的浏览器登录。
可以调用.maxSessionsPreventsLogin(true)
方法。
集群session管理
在互联网应用中,将集群应用的的session提取出来,放在一个第三方的数据库库中比如:REDIS\MONGO\jdbc
1、配置session管理工具
spring:
session:
store-type: REDIS