Spring Security,多个http元素。哪个是哪个?

时间:2017-05-04 16:03:01

标签: java spring spring-mvc spring-security

我有一个Spring Config工作正常。我的Spring Config使用多个security:http部分。 定义security:http部分时,某些操作会自动发生,例如某些bean定义。其中一个自动定义的bean是SessionAuthenticationStrategy - 实现bean。

问题:你怎么能确定哪个是哪个?例如,我需要通过@Autowired从代码中引用特定的身份验证策略,该策略在特定的http:security标记中定义;我怎么能做到这一点?

1 个答案:

答案 0 :(得分:1)

在自定义bean和SessionAuthenticationStrategy内部生成相同<sec:http>实例的一种方法是生成相反的方向:明确定义SessionAuthenticationStrategy并将其注入任何您想要的位置,包括http配置:

<bean id="fancySessionAuthStrategy" class="com.fancy.FancySessionAuthStrategy">
    ...
</bean>

<sec:http ...>
    <sec:session-management session-authentication-strategy-ref="fancySessionAuthStrategy"/>
    ...
</sec:http>

这里唯一的问题是您必须手动构建该策略bean定义。

示例可以在文档中找到:http://docs.spring.io/spring-security/site/docs/current/reference/html/session-mgmt.html