【问题标题】:Spring Security: One Authentication Provider for loading authorities and other for real authenticationSpring Security:一个用于加载权限的身份验证提供程序,另一个用于真正的身份验证
【发布时间】:2011-12-14 22:49:29
【问题描述】:

我的应用程序使用 Spring Security 来处理身份验证。到目前为止,我使用的是基于 jdbc-user-service 的简单身份验证提供程序,它同时执行身份验证和加载权限,并且一切正常:

<authentication-manager alias="authenticationManager">
    <authentication-provider>
        <password-encoder hash="sha" />
        <jdbc-user-service data-source-ref="dataSource"
            authorities-by-username-query="select t1.login, t2.USERROLES from USER as t1, USERROLES as t2 where t1.ID=t2.User_ID and t1.login= ?"
            users-by-username-query="select login,password,enabled from USER where login = ?" />
    </authentication-provider>
</authentication-manager>

现在我有了一个新的规范:

  1. 应该像以前一样从数据库中加载权限
  2. 应使用 LDAP 进行身份验证

我在一个测试应用程序中正确配置了 LDAP 身份验证,它工作得很好。现在我必须把它放在一起。如何让我的 jdbc auth-provider 不执行身份验证,而只加载权限并启用下一个身份验证管理器(在我的情况下为 LDAP 身份验证管理器)进行真正的身份验证?

【问题讨论】:

    标签: spring authentication spring-security


    【解决方案1】:

    您需要实现自己的身份验证提供程序,但当然您可以重用DaoAuthenticationProvider 和 LDAP 身份验证提供程序。

    顺便说一句:Ldap 身份验证提供程序的授权部分在LdapAuthoritiesPopulator 中完成。

    【讨论】:

      猜你喜欢
      • 2012-02-18
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-28
      • 2021-12-23
      • 2018-05-07
      • 2019-05-15
      相关资源
      最近更新 更多