Spring会话的Spring安全性创建

时间:2015-06-15 15:23:35

标签: java spring session spring-security

我正在使用弹簧安全。 我有这种情况:

  1. 创建2个用户
  2. 使用第一个登录,然后在用户1的会话到期之前使用第二个登录
  3. 正确的行为是第一个会话设置已过期,并且会创建一个新会话。

    哪个春季安全部分负责完成新会话的到期和创建?成功处理程序/身份验证提供程序?

1 个答案:

答案 0 :(得分:1)

我认为这就是你要找的东西,如果没有,请告诉我,我会删除我的答案。您需要一些会话管理。我有这样的XML代码。

  <security:session-management session-fixation-protection="migrateSession">
         <security:concurrency-control session-registry-ref="sessionRegistry" max-sessions="1" expired-url="/login"/>
     </security:session-management>

还有sessionRegistry下面的课程:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {


    @Override
    protected void configure(final HttpSecurity http) throws Exception {
        http.sessionManagement().maximumSessions(-1).sessionRegistry(sessionRegistry());
    }

    @Bean
    public SessionRegistry sessionRegistry() {
        return new SessionRegistryImpl();
    }

}

您可以使用newSession而不是migrateSession,这样,旧会话将自动过期,并且将创建一个新会话。