10.11身份验证管理器和命名空间-Spring Security用户手册-Java-IT技术博客

10.11身份验证管理器和命名空间

在Spring Security中提供身份验证服务的主要接口是AuthenticationManager。 这通常是Spring Security的ProviderManager类的实例,如果您以前使用过该框架,则可能已经熟悉。 如果没有,它将在稍后的“技术概述”一章中介绍。 使用authentication-manager名称空间元素注册Bean实例。 如果您通过命名空间使用HTTP或方法安全性,则不能使用自定义AuthenticationManager,但这应该不是问题,因为您可以完全控制所使用的AuthenticationProvider。


您可能想要向ProviderManager注册其他AuthenticationProvider Bean,并且可以使用具有ref属性的<authentication-provider>元素来执行此操作,其中属性的值是要添加的provider Bean的名称。 例如:

<authentication-manager>
<authentication-provider ref="casAuthenticationProvider"/>
</authentication-manager>
<bean id="casAuthenticationProvider"
    class="org.springframework.security.cas.authentication.CasAuthenticationProvider">
...
</bean>

另一个常见要求是上下文中的另一个bean可能需要对AuthenticationManager的引用。 您可以轻松地为AuthenticationManager注册别名,并在应用程序上下文中的其他位置使用此名称。

<security:authentication-manager alias="authenticationManager">
...
</security:authentication-manager>
<bean id="customizedFormLoginFilter"
    class="com.somecompany.security.web.CustomFormLoginFilter">
<property name="authenticationManager" ref="authenticationManager"/>
...
</bean>


标签: Spring SecuritySpring文档Spring Security中文教程SpringSecurity手册