-
urity内置地对该接口仅提供了一个实现就是SimpleRedirectInvalidSessionStrategy。
#invalidSessionStrategy和#invalidSessionUrl都被调用时,#invalidSessionStrategy会生效; -
#sessionAuthenticationErrorUrl定义
SessionAuthenticationStrategy抛出异常时要跳转的URL。如果未设置该属性,SessionAuthenticationStrategy抛出异常时,会返回402给客户端。注意在基于表单的登录失败时,该属性并不应用。因为此时表单认证失败
URL会先被跳转。 -
#sessionAuthenticationFailureHandler定义
SessionAuthenticationStrategy抛出异常时要应用的认证失败处理器AuthenticationFailureHandler。如果未设置该属性,SessionAuthenticationStrategy抛出异常时,会返回402给客户端。注意在基于表单的登录失败时,该属性并不应用。因为此时表单认证失败
URL会先被跳转。如果
#sessionAuthenticationErrorUrl和#sessionAuthenticationFailureHandler都被调用,#sessionAuthenticationFailureHandler会生效; -
#enableSessionUrlRewriting调用该方法设置属性
enableSessionUrlRewriting.如果enableSessionUrlRewriting属性被设置为true,使用HttpServletResponse#encodeRedirectURL(String)/HttpServletResponse#encodeURL(String)时,允许将HTTP session信息重写到URL中。该方法对应的属性enableSessionUrlRewriting缺省为false,不允许Http session重写到URL。 -
#sessionCreationPolicy设置会话创建策略
SessionCreationPolicy。如果不设置,则会尝试使用公共对象中设置的SessionCreationPolicy。如果公共对象中也没有设置会话创建策略,则使用缺省的会话创建策略SessionCreationPolicy.IF_REQUIRED。 -
#sessionAuthenticationStrategy允许设置一个会话认证策略。如果不设置,会使用缺省值。缺省值是
SessionFixationProtectionStrategy(针对Servlet 3.1)/ChangeSessionIdAuthenticationStrategy(针对Servlet 3.1+)。 -
#maximumSessions设置每个用户的最大并发会话数量。此方法返回一个
ConcurrencyControlConfigurer,这也是一个安全配置器,设置每个用户会话数量超出单用户最大会话并发数时如何处理。ConcurrencyControlConfigurer的配置能力如下#expiredUrl设置一个
URL。如果某用户达到单用户最大会话并发数后再次请求新会话,则将最老的会话超时并将其跳转到该URL。#expiredSessionStrategy设置一个会话信息超时策略对象
SessionInformationExpiredStrategy。如果某用户达到单用户最大会话并发数后再次请求新会话,则调用该策略超时哪个会话以及进行什么样的超时处理。
如果#expiredUrl和#expiredSessionStrategy都被调用,#expiredSessionStrategy生效。#maxSessionsPreventsLogin设置属性
maxSessionsPreventsLogin.如果设置为true,则某用户达到单用户最大会话并发数后再次请求登录时会被拒绝登录。
缺省情况下maxSessionsPreventsLogin为false。则某用户达到单用户最大会话并发数后再次请求登录时,其最老会话会被超时并被重定向到#expiredUrl所设置的URL(或者被#expiredSessionStrategy所设置策略处理)。#sessionRegistry设置所要使用的
SessionRegistry,不设置时的缺省值为一个SessionRegistryImpl。
-
#sessionFixation此方法返回一个
SessionFixationConfigurer,这也是一个安全配置器,专门对Session Fixcation保护机制做出设置。SessionFixationConfigurer的配置能力如下#newSession设置固定会话攻击保护策略为
SessionFixationProtectionStrategy,该策略会在用户会话认证成功时创建新的会话,但不会复制旧会话的属性。#migrateSession设置固定会话攻击保护策略为
SessionFixationProtectionStrategy,该策略会在用户会话认证成功时创建新的会话,并且复制旧会话的属性。#changeSessionId设置固定会话攻击保护策略为
ChangeSessionIdAuthenticationStrategy,仅针对Servlet 3.1+,在用户会话认证成功时调用Servlet 3.1方法HttpServletRequest#changeSessionId()变更会话ID并保留所有会话属性。在Servlet 3.0或者更早版本中使用该策略会触发异常IllegalStateException。#none设置固定会话攻击保护策略为
NullAuthenticatedSessionStrategy。这种策略其实是关闭Spring Security的固定会话攻击保护策略。该方案多用在应用已经启用了其他的固定会话攻击保护策略的情况下,比如使用了应用服务器端固定会话攻击保护策略。如果没有采用其他固定会话攻击保护策略,建议不要使用此选项。
继承关系

使用
// HttpSecurity 类代码片段
public SessionManagementConfigurer<HttpSecurity> sessionManagement() throws Exception {
return getOrApply(new SessionManagementConfigurer<>());
}