有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java LdapTemplate:除非baseDN与组所在的OU相同,否则无法找到特定的组

我已经构建了一个active directory api。在一台机器上工作正常,但在另一台机器上(不同的森林、不同的网络),spring ldapTemplate找不到特定的组。所有其他群体都被发现。我比较了能找到的组和不能找到的组。我看不出有什么不同

出于某种原因,如果我将ldap搜索的基础设置为组所在的组织单位,则会显示特定的组。 此外,如果我在终端上用ldifde搜索广告域,丢失的组将与其他组一起显示

我使用的代码非常基本。正如我之前所说,它在那台机器上根本不起作用。 下面是我如何设置ldap属性的:

        ldapContextSource().setUrl(domain.getAddress() + ":" + domain.getPort());
        ldapContextSource().setBase(domain.getBase());
        ldapContextSource().setUserDn(domain.getUserDn());
        ldapContextSource().setPassword(domain.getDecryptedPassword());
        ldapContextSource().afterPropertiesSet();

        [...]

        @Bean
        public LdapTemplate ldapTemplate() {
            return new LdapTemplate(ldapContextSource());
        }

我使用

ldapTemplate.findAll(LdapGroup.class);

这就是LdapGroup的工作方式。课堂看起来像:

@Entry(objectClasses = {"top", "group"})
public class LdapGroup {
    @JsonIgnore
    @Id
    private Name dn;
    [...]

共 (0) 个答案