日期:2014-05-19  浏览次数:20718 次

spring security 配置禁止用户重复登录,不能实现。
  spring   security   2.0.5  
  web.xml配置:
      <listener>      
<listener-class> org.springframework.security.ui.session.HttpSessionEventPublisher </listener-class>      
      </listener>
  spring-security.xml配置
      <ss:concurrent-session-control   exception-if-maximum-exceeded= "false "   max-sessions= "1 "   session-registry-alias= "sessionRegistry "   expired-url= "/login.jsp?error=3 "/>
      <bean   id= "sessionRegistry "   class= "org.springframework.security.concurrent.SessionRegistryImpl "/>

配置就是这两个,为什么同一个帐号还是可能重复登录很多此呢?是哪里的问题,麻烦高手们指点迷津。
      是不是配置有问题,该怎么改。

------解决方案--------------------
exception-if-maximum-exceeded= "false " 应该是默认让前一个用户的session失效,后一个用户还是能正常登录的.设置成true后,重复登录后才能抛出异常吧.
LZ可以试试改下这个属性.
------解决方案--------------------
<!-- 登录验证器 -->
<beans:bean id="loginFilter"
class="com.mylifes.security.spring.MyUsernamePasswordAuthenticationFilter">
<!-- 处理登录 -->
<beans:property name="filterProcessesUrl" value="/j_spring_security_login" />
<beans:property name="authenticationSuccessHandler"
ref="loginLogAuthenticationSuccessHandler" />
<beans:property name="authenticationFailureHandler"
ref="simpleUrlAuthenticationFailureHandler" />
<!-- 把配置好的session管理器放到登陆里 -->
<beans:property name="authenticationManager" ref="myAuthenticationManager" />
<beans:property name="usersSecurityDao" ref="usersSecurityDao" />
<beans:property name="sessionAuthenticationStrategy"
ref="sas" />
<beans:property name="rememberMeServices" ref="rememberMeServices" />
</beans:bean>
红色的是重点