【问题标题】:ActiveDirectoryLdapAuthenticationProvider and final modifierActiveDirectoryLdapAuthenticationProvider 和 final 修饰符
【发布时间】:2015-04-29 03:40:00
【问题描述】:

我已经开始在我的项目中使用 spring ActiveDirectoryLdapAuthenticationProvider 以及另一个与 DB 一起使用以验证用户身份的项目。

我关心的主要问题与可能使用相同凭据在 Active Directory 服务器和数据库端创建的相同用户有关。之后,这些用户将有可能使用他们的电子邮件登录到项目中。在这一步中,我遇到了不一致的情况,因为拥有DBAD 凭据的用户对项目页面具有不同的访问权限。

为了解决这个问题,我们决定取消 AD 用户使用电子邮件登录的可能性,因为对于 DB 提供商,我们无法修改现有功能,用户应该以与以前相同的方式登录。

我查看了 spring ActiveDirectoryLdapAuthenticationProvider 方面,然后注意到该类是 final,不幸的是我的方法 createBindPrincipal 没有可能覆盖。

我们决定做的下一步是将现有类复制粘贴到我们的项目中,然后删除 final 修饰符,然后我们做与这篇文章 How to authenticate against Active Directory via LDAP over TLS? 中类似的事情。

总的来说,我不想让它保持原样,因为将来当我们决定迁移到最高版本的 spring 时,将很难支持。此外,使用这种方法,我们应该复制过去的 ActiveDirectoryLdapAuthenticationProviderTest 以保持正确的覆盖形式。

有人能解释一下参加这门课final 的主要原因是什么吗?

【问题讨论】:

    标签: java spring spring-ldap


    【解决方案1】:

    有一个未解决的问题:https://github.com/spring-projects/spring-security/issues/3191 这门课似乎没有真正的理由成为最终课程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      相关资源
      最近更新 更多