Java 拒绝使用已通过身份验证的会话登录
如何拒绝已通过身份验证的HTTP会话的第二次登录(使用相同或不同的用户) 因为我发现了以下解决方法:Java 拒绝使用已通过身份验证的会话登录,java,spring-security,Java,Spring Security,如何拒绝已通过身份验证的HTTP会话的第二次登录(使用相同或不同的用户) 因为我发现了以下解决方法: 但这些解决方法并不完美,因为我仍然可以访问登录处理url,并执行第二次登录。这对于没有登录页面的所有身份验证机制来说都是一个问题,如和 我的Java配置: @Configuration @EnableWebSecurity public static class MyWebSecurityConfigurationAdapter extends WebSecurityConfigure
登录处理url
,并执行第二次登录。这对于没有登录页面的所有身份验证机制来说都是一个问题,如和
我的Java配置:
@Configuration
@EnableWebSecurity
public static class MyWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/**").hasAuthority("ROLE_user")
.and()
.formLogin()
.loginProcessingUrl("/Login").permitAll()
.loginPage("/index.jsp").permitAll()
.defaultSuccessUrl("start.jsp")
.failureUrl("/index.jsp")
.and()
.httpBasic();
}
}
例如:
将以下条目放入web.xml中
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
org.springframework.security.web.session.HttpSessionEventPublisher
在spring安全配置中,使用以下代码段:
<http>
<session-management>
<concurrency-control max-sessions="1" expired-url="/redirect-page" />
</session-management>
</http>
将以下条目放入web.xml
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
org.springframework.security.web.session.HttpSessionEventPublisher
在spring安全配置中,使用以下代码段:
<http>
<session-management>
<concurrency-control max-sessions="1" expired-url="/redirect-page" />
</session-management>
</http>
您的解决方案有两个缺点:1。用户不能使用单独的会话登录两次。2.它只适用于同一用户,不同的用户仍然可以使用相同的会话。我会更新我的问题,让它更清楚。Deinum:当然,我在登录后会通过身份验证,但会与其他用户进行身份验证。这就是问题所在。我不想与用户共享会话(或合并)。您的解决方案有两个缺点:1。用户不能使用单独的会话登录两次。2.它只适用于同一用户,不同的用户仍然可以使用相同的会话。我会更新我的问题,让它更清楚。Deinum:当然,我在登录后会通过身份验证,但会与其他用户进行身份验证。这就是问题所在。我不想与用户共享会话(或合并)。请实施自定义SessionAuthenticationStrategy
@Aleksandr M:谢谢。也许我可以检查会话是否已经通过身份验证并引发异常。但目前我不确定在FILTER chaein中的BASIC\u AUTH\u FILTER
之前是否执行了SessionAuthenticationStrategy
。我将阅读Spring安全参考并尝试实现它。实现自定义SessionAuthenticationStrategy
@Aleksandr M:谢谢。也许我可以检查会话是否已经通过身份验证并引发异常。但目前我不确定在FILTER chaein中的BASIC\u AUTH\u FILTER
之前是否执行了SessionAuthenticationStrategy
。我将阅读Spring安全参考并尝试实现它。