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>