首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring ldapTemplate:如何使用配置的基本DN查找完全合格的DN?

Spring ldapTemplate:如何使用配置的基本DN查找完全合格的DN?
EN

Stack Overflow用户
提问于 2019-03-21 17:08:47
回答 1查看 469关注 0票数 3

当我使用Spring DN查找ldapTemplate时,必须省略配置好的基本DN。

例如,当基本DN配置为dc=company,dc=com时,工作查找将类似于

代码语言:javascript
复制
ldapTemplate.lookup("ou=whatever,ou=groups")

当我通过完全合格的DN时

代码语言:javascript
复制
ldapTemplate.lookup("ou=whatever,ou=groups,dc=company,dc=com")

查找失败,并抱怨DN ou=whatever,ou=groups,dc=company,dc=com,dc=company,dc=com (请注意末尾的双基)不存在。

因此,当我根据以前查找的DNs返回的DNs进行查找时,必须从DN.的末尾移除基。

这是相当恼人的,我几乎可以肯定有更好的方法来做到这一点。

因此,如何查找具有配置的基本DN的完全限定DN?

我知道有一个查询方法采用基参数,但是这似乎是为更实际的查询而不是简单的查找而做的。

@jzheaux接受答案的示例使用

代码语言:javascript
复制
LdapName fqdn = ... //fully qualified DN with base DN that is returned from lookup
LdapName baseDn = ((LdapContextSource) ldapTemplate.getContextSource()).getBaseLdapName();
LdapName lookupDn = LdapUtils.removeFirst(fqdn, baseDn);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-02 18:17:48

根据JavaDoc的说法,这就是LdapUtils#removeFirst的目的:

代码语言:javascript
复制
/**
 * Remove the supplied path from the beginning the specified
 * <code>Name</code> if the name instance starts with
 * <code>path</code>. Useful for stripping base path suffix from a
 * <code>Name</code>.
**/

或者,您可以配置没有基础的ContextSource。然后,所有查询都使用一个完全限定的名称。或者,您可以使用多个ContextSource;一个配置了一个基座,另一个没有配置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55285743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档