小编Pat*_*ing的帖子

Nexus 和 LDAP - 针对 OpenLDAP 服务器验证用户身份时的 JNDI 问题

我将 Nexus 存储库管理器 (nexus.sonatype.org) 与开源 LDAP 插件 (code.google.com/p/nexus-ldap/) 一起使用,并且收到一条错误消息,指示使用了错误的协议版本(详细信息如下) 。该插件所做的只是使用 JNDI LDAP 服务提供程序连接到我的 LDAP 服务器。如果您查看 nexus.log 文件中的堆栈跟踪,就会发现 JNDI LDAP 实现中的上下文初始化期间发生了异常。所以我的猜测是,下面描述的问题不是由 Nexus 插件引起的,而是由 JNDI 的误用或对 LDAP 身份验证的误解引起的。

非常感谢任何有关此错误是如何引起的猜测或想法!

哪些步骤将重现该问题?

  1. 配置 Nexus 以使用 OpenLDAP 1.2.x 服务器的 LdapAuthenticatingRealm - 因此是 LDAP 协议的版本 2。
  2. 尝试列出 OpenLDAP 服务器中的用户并将它们映射到 Nexus 配置 UI 中的角色 - 效果很好。
  3. 现在尝试使用已成功映射到角色的 LDAP 用户登录正在运行的 Nexus 实例或对其进行身份验证。

什么是预期的输出?你看到了什么呢?

尝试登录时,我收到错误消息“用户名、密码不正确或无权使用 Nexus 用户界面。请重试。”。在 Nexus 日志文件中,我看到当 Sun 的 JNDI-LDAP 实现(请参阅从下面的日志文件中获取的堆栈跟踪)尝试使用给定信息初始化上下文以便针对 LDAP 服务器对用户进行身份验证时抛出异常。使用 Nexus UI 进行的用户查找以及身份验证期间执行的查找都可以正常工作(请参阅下面的日志文件)。

CommunicationException 中包含的错误消息(“[LDAP:错误代码 2 - 版本不受支持]”)指示使用了错误的 LDAP 协议版本。我尝试明确使用协议版本 2,因为 OpenLDAP 版本 1.2.7-30 …

java jndi ldap nexus

5
推荐指数
1
解决办法
3251
查看次数

标签 统计

java ×1

jndi ×1

ldap ×1

nexus ×1