验证管理器和命名空间

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

您可能需要使用ProviderManager注册其他的AuthenticationProvider Bean,你可以使用<authentication-provider>元素的ref属性,在属性的值是您要添加的bean的名字。例如:

  1. <authentication-manager>
  2. <authentication-provider ref="casAuthenticationProvider"/>
  3. </authentication-manager>
  4. <bean id="casAuthenticationProvider"
  5. class="org.springframework.security.cas.authentication.CasAuthenticationProvider">
  6. ...
  7. </bean>

另一个常见的需求是,上下文中的另一个bean可能需要引用AuthenticationManager,您可以注册一个AuthenticationManager的别名在应用程序上下文中的其他地方使用这个名字。

  1. <security:authentication-manager alias="authenticationManager">
  2. ...
  3. </security:authentication-manager>
  4. <bean id="customizedFormLoginFilter"
  5. class="com.somecompany.security.web.CustomFormLoginFilter">
  6. <property name="authenticationManager" ref="authenticationManager"/>
  7. ...
  8. </bean>