- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个能够使用 OpenDJ Client SDK 登录 LDAP 服务器的 java 应用程序,但我只有域名、用户名(也称为 SAMAccountName)和密码。如果您不知道域登录,请参阅此图片:
您可以按照以下格式输入用户名字段:DOMAIN_NAME\USER_NAME,而不仅仅是普通的 USER_NAME。域名示例为:corp.fabrikam.com。
现在我需要知道如何将域名转换为可分辨名称 (DN)?因为 OpenDJ 需要专有名称才能连接到 LDAP。
例如:corp.fabrikam.com 的专有名称为:dc=corp, dc=fabrikam, dc=com。
看来我只需要用“.”来分割它,但我听说有一种叫做不相交域的东西:
http://technet.microsoft.com/en-us/library/cc731125%28v=ws.10%29.aspx
所以 split 技巧在这里可能不可靠。
此外,LDAP 中的用户可以位于组织单位 (OU) 下。假设用户 john 属于 manager OU,因此 john 的完整用户 DN 将如下所示:
uid=约翰、ou=经理、dc=corp、dc=fabrikam、dc=com
最佳答案
您应该始终引用 ldap 服务器的 RootDSE 条目来获取有关您正在连接的环境的信息。 RootDSE 条目可由匿名绑定(bind)的任何人读取(或特定用户,这并不重要,只要您被绑定(bind)即可)。它包含很多有趣的东西,您正在寻找的是defaultNamingContext。
绑定(bind)后,对空字符串的 DN 执行 ldap 读取操作:''。如果您选择的框架提供了一些 API 来读取 rootDSE,请尝试使用它。可能会更简单。
这可能会帮助您开始: http://opendj.forgerock.org/opendj-ldap-sdk/apidocs/index.html我在 opendj 文档页面上没有找到任何提及 defaultNamingContext 的内容,但您可能只是通过 getNamingContexts() 方法获取您正在查找的信息。
请注意,rootDSE 是一项 LDAP 功能,它不是特定于实现的。
关于java - 如何在 LDAP 中将域名转换为可分辨名称 (DN)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16013624/
我是一名优秀的程序员,十分优秀!