我是Spring安全新手,对Spring安全性的会话管理有疑问。 我已经像这样配置了我的应用程序,以防止在特定时刻多次使用用户名登录:
<bean id="sas" class="security.SessionAuthenticationStrategy">
<constructor-arg ref="sessionRegistry"/>
<property name="maximumSessions" value="1" />
<property name="exceptionIfMaximumExceeded" value="true"/>
</bean>
我想知道是否可以在spring security中为特殊用户阻止此配置。
答案 0 :(得分:3)
可以通过覆盖自定义子类中的ConcurrentSessionControlStrategy.getMaximumSessionsForThisUser()
来实现。引自it's javadoc:
子类用于覆盖特定身份验证允许的最大会话数的方法。默认实现只返回bean的maximumSessions值。
然后通过以下方式参考您的自定义实现:
<security:session-management
session-authentication-strategy-ref="customConcurrentSessionControlStrategy"/>