Spring Security 参考手册

验证管理器和命名空间

Spring Security中主要的提高验证服务的接口是AuthenticationManager,这通常是一个Spring Security的ProviderManager 类的实例。如果你以前用过框架你可能已经熟悉了。如果不是后面的技术预览章节会讲到。这个bean是通过authentication-manager命名空间来注册。你不能使用自定义的AuthenticationManager如果通过命名空间使用HTTP或方法安全,但是这不应该是一个问题,因为你可以完全控制所使用的好的AuthenticationProvider。

您可能需要使用ProviderManager注册其他的AuthenticationProvider Bean,你可以使用<authentication-provider>元素的ref属性,在属性的值是您要添加的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>