有人可以在如何在Spring Security中使用仅仅java配置(没有任何XML)提供真正的工作代码片段。
我正在使用 Spring Security v4.0.1.RELEASE
我试图做的事情:
<![CDATA[
// content of your Javascript goes here
]]>
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this, "password", "id", "role", "description", "registrationDate", "enabled");
}
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj, "password", "id", "role", "description", "registrationDate", "enabled");
}
public class AppSecurityInitializer extends
AbstractSecurityWebApplicationInitializer {
@Override
protected boolean enableHttpSessionEventPublisher() {
return true;
}
}
@Bean
public SessionRegistry getSessionRegistry() {
return new SessionRegistryImpl();
}
@Bean
public SessionAuthenticationStrategy getSessionAuthStrategy(SessionRegistry sessionRegistry) {
ConcurrentSessionControlAuthenticationStrategy controlAuthenticationStrategy =
new ConcurrentSessionControlAuthenticationStrategy(sessionRegistry);
return controlAuthenticationStrategy;
}
代码有效,它阻止我在相同的用户twise下登录,但是当我在控制器类中获得SessionRegistry时,它总是为空。
答案 0 :(得分:1)
看起来好像spring自己创建了一个不同的SessionRegistryImpl。
怎么样?
httpSecurity
.sessionManagement()
.maximumSessions(1)
.sessionRegistry(getSessionRegistry());
省去sessionAuthenticationStrategy的东西?!