0

我是 Spring Security 的新手,对 Spring Security 中的会话管理有疑问。我已经像这样配置了我的应用程序,以防止在特定时刻通过用户名多次登录:

<bean id="sas" class="security.SessionAuthenticationStrategy">
    <constructor-arg ref="sessionRegistry"/>
    <property name="maximumSessions" value="1" />
    <property name="exceptionIfMaximumExceeded" value="true"/>
</bean>

我想知道是否可以在spring security中为特殊用户阻止此配置。

4

1 回答 1

3

可以通过覆盖ConcurrentSessionControlStrategy.getMaximumSessionsForThisUser()自定义子类来实现。引用它的 javadoc

供子类使用的方法,用于覆盖特定身份验证允许的最大会话数。默认实现只返回 bean 的 maximumSessions 值。

然后通过以下方式参考您的自定义实现:

<security:session-management 
  session-authentication-strategy-ref="customConcurrentSessionControlStrategy"/>
于 2013-05-11T10:02:58.920 回答