我正在使用弹簧安全。 我有这种情况:
正确的行为是第一个会话设置已过期,并且会创建一个新会话。
哪个春季安全部分负责完成新会话的到期和创建?成功处理程序/身份验证提供程序?
答案 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,这样,旧会话将自动过期,并且将创建一个新会话。