新会话的Spring安全创建
Posted
技术标签:
【中文标题】新会话的Spring安全创建【英文标题】:Spring security creation of new session 【发布时间】:2015-08-31 04:08:34 【问题描述】:我正在使用弹簧安全性。 我有这种情况:
-
创建 2 个用户
在用户 1 的会话到期之前使用第一个登录并使用第二个再次登录
正确的行为是将第一个会话设置为过期并创建一个新会话。
哪个 Spring Security 部分负责新会话的到期和创建?成功处理程序/身份验证提供程序?
【问题讨论】:
【参考方案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,这样旧的会话将自动过期并创建一个新的会话。
【讨论】:
以上是关于新会话的Spring安全创建的主要内容,如果未能解决你的问题,请参考以下文章
httpservletrequest - 创建新会话/更改会话 ID