Spring Boot+SpringSecurity Session超时处理

设置Session超时时间

Session超时处理首先要设置Session超时时间。

查看Spring Boot2.0官网文档,可以看到设置Session超时时间还是很简单的:

Spring Boot+SpringSecurity Session超时处理

Spring Boot+SpringSecurity Session超时处理

在yml文件中:

设置为10秒(不设置默认是半小时),即连续10秒不操作就会失效:

Spring Boot+SpringSecurity Session超时处理

简单测试一下,看是不是有效果:

系统登陆成功后,访问一个Controller:

Spring Boot+SpringSecurity Session超时处理

等10秒之后,再访问看看:

Spring Boot+SpringSecurity Session超时处理

任然可以访问,Session并没有失效,这是什么原因呢?

可以看看这样一个类:

Spring Boot+SpringSecurity Session超时处理

有这样一个方法:

Spring Boot+SpringSecurity Session超时处理

Spring Boot+SpringSecurity Session超时处理

也就是说如果你设置的Session过期时间是小于1分钟的,那就是1分钟。

再访问,果然就进入了我配置的Session超时后的处理页面:

Spring Boot+SpringSecurity Session超时处理

设置Session超时处理

增加这样一个配置即可:

Spring Boot+SpringSecurity Session超时处理

可以在Controller的RequestMapping里面配置相应映射,我这里就是简单返回一个Json:

Spring Boot+SpringSecurity Session超时处理

同时要注意这个路径一定要配置不被SpringSecurity拦截。