Spring Security中的多个身份验证提供程序

ank*_*oni 55 spring-security

我在Spring Security配置中配置了两个身份验证提供程序:

   <security:authentication-manager>
      <security:authentication-provider ref="XProvider" />
      <security:authentication-provider ref="YProvider" />
   </security:authentication-manager>
Run Code Online (Sandbox Code Playgroud)

Spring安全性是否评估两个提供商?或者它是否停止评估其中一个是否失败?如果没有,如何让它停止?

谢谢.

Jos*_*ros 72

您可以根据需要指定任意数量的提供程序.它们将按照您在authentication-manager标记内声明它们的顺序进行检查.

一旦成功进行身份验证,它将停止轮询提供者.如果任何提供者抛出AccountStatusException它也会破坏轮询.

  • 这是正确的答案.应该提到的是,这不是Spring-Security的核心功能,而是默认的AuthenticationManager实现,它支持AuthenticationProvider实例列表. (5认同)