概述
| 关键字 | 描述 |
|---|---|
| always | 如果当前请求没有对应的session存在,创建一个session |
| ifRequired(默认) | 在需要使用session时才创建session |
| never | Spring Security 将永远不会主动创建session ,但是如果session 在当前应用中已经存在,它将使用该session |
| stateless | Spring Security 不会创建或使用任何session,适合于接口型的无状态应用(前后端分离),该方式节省内存资源 |
配置
在Spring Secruity 的全局配置中,添加如下代码,配置基础的设定
// ifRequired
.and()
.and().sessionManagement()
.sessionCreationPlicy(SessionCreationPolicy.IF_REQUIRED);
// never
.and()
.and().sessionManagement()
.sessionCreationPlicy(SessionCreationPolicy.NEVER);
//其他的相同
会话超时
在spring security 中使用session配置
spring boot 中 有两种
//application全局配置文件
server.servlet.session.timeout = 15m;//由 spring boot 提供
spring.session.timeout = 15m;//由spring security 提供会覆盖上面一种(优先级更高)
注: spring.session 配置的时间最短是一分钟, 当你的设置小于一分钟的时候, 他也是按照一分钟来处理
超时处理
.and().sessionManagement()
.invalidSessionUrl("/invalidSession.html");//会话超时之后跳转的页面