spring security session创建策略

305 阅读1分钟

概述

关键字描述
always如果当前请求没有对应的session存在,创建一个session
ifRequired(默认)在需要使用session时才创建session
neverSpring Security 将永远不会主动创建session ,但是如果session 在当前应用中已经存在,它将使用该session
statelessSpring 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");//会话超时之后跳转的页面