SpringSecurity session会话的安全管理
Spring Security session 创建策略
- always: 如果当前请求没有对应的session存在,创建一个session。
- ifRequired(默认):在需要使用到session时才创建session。
- never:Spring Security将永远不会主动创建session,但是如果session在当前应用中已经存在,它将使用该session。
- stateless:Spring Security不会创建或使用任何session。适合于接口型的无状态应用(前后端分离),该方式节省内存资源。
在SecurityConfig中添加如下配置
会话超时配置(最短时间为1min)
- server.servlet.session.timeout = 15m
- spring.session.timeout = 15m
session保护
- migrationSession保护方式(默认)。即对于同一个SESSIONID用户,每次登陆验证将创建一个新的HTTP session,旧的HTTP session将无效,将旧的session的属性复制到新session上面。
- 设置为“none”时,原始会话不会无效
- 设置“newSession”后,将创建一个干净的会话,而不会复制旧的会话中的任何属性
Cookie的安全
- httpOnly:如果true,则浏览器脚本将无法访问cookie
- secure:如果为true,则仅通过HTTPS连接发送cookie,HTTP无法携带cookie。