扩展Spring MVC类

时间:2018-11-21 15:24:07

标签: spring spring-mvc spring-security

我正在尝试扩展ConcurrentSessionControlAuthenticationStrategy的Spring MVC类,并用我自己的实现覆盖getMaximumSessionsForThisUser方法。

如何注册或与Spring交流以使用其方法的实现而不是其自身的实现?

1 个答案:

答案 0 :(得分:2)

有关XML配置,请参见Spring Security Reference

  

21.2 SessionAuthenticationStrategy

     

SessionAuthenticationStrategySessionManagementFilterAbstractAuthenticationProcessingFilter共同使用,因此,例如,如果您使用定制的表单登录类,则需要将其注入这两个类中。在这种情况下,将名称空间和自定义bean相结合的典型配置如下所示:

     
<http>
     <custom-filter position="FORM_LOGIN_FILTER" ref="myAuthFilter" />
     <session-management session-authentication-strategy-ref="sas"/>
</http>

<beans:bean id="myAuthFilter" class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter">
<beans:property name="sessionAuthenticationStrategy" ref="sas" />
    ...
</beans:bean>

<beans:bean id="sas" class="org.springframework.security.web.authentication.session.SessionFixationProtectionStrategy" />

有关Java配置,请参见SessionManagementConfigurer#sessionAuthenticationStrategy

public SessionManagementConfigurer<H> sessionAuthenticationStrategy(SessionAuthenticationStrategy sessionAuthenticationStrategy)
     

允许显式指定SessionAuthenticationStrategy。默认为使用SessionFixationProtectionStrategy。如果配置了限制最大会话数,则CompositeSessionAuthenticationStrategy委派给ConcurrentSessionControlAuthenticationStrategySessionFixationProtectionStrategy(默认值)或SessionAuthenticationStrategy所提供的sessionAuthenticationStrategy RegisterSessionAuthenticationStrategy。注意:提供自定义SessionAuthenticationStrategy将覆盖提供的默认SessionFixationProtectionStrategy