LdapRepository 配置不匹配
LdapRepository configuration no match
我们正在尝试从 Spring Ldap 设置 LdapRepository 并努力检索用户列表。 Ldap 服务器是一个 ActiveDirectory。
我们可以使用相同的凭据通过 ActiveDirectoryLdapAuthenticationProvider
登录。
Spring 属性:
spring.ldap.base=cn=Users,dc=company,dc=local
spring.ldap.password=secret
spring.ldap.username=useradmin
spring.ldap.urls=ldap://172.16.36.60:389
当读出从登录中检索到的 inetOrgPerson
时,它说:
dn="CN=useradmin,CN=Users,DC=company,DC=local"
所以我认为基础是正确的。
不,当尝试从存储库中 .findAll()
时,没有找到任何东西。我们的模型 class 目前看起来像这样。
@Entry(base="cn=Users,dc=company,dc=local",objectClasses = {"inetOrgPerson","top"})
public final class CompanyUser implements Serializable {
@Id private Name dn;
@Attribute(name="username") private String userName;
@Attribute(name="mail") private String email;
...
}
当在 @Entry
注释上省略 base
时,存储库将 return count=0。使用注释上的 base
属性,查询抛出:
javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-03100241, problem 2001 (NO_OBJECT), data 0, best match of:
'CN=Users,DC=company,DC=local'
]
如果 base 已在属性中完全定义,则不在实体 class 上添加 base 是正确的。
服务器未返回任何结果的原因,目前可以通过从 @Entry
中删除 "inetOrgPerson" 对象 class 来解决。
我们正在尝试从 Spring Ldap 设置 LdapRepository 并努力检索用户列表。 Ldap 服务器是一个 ActiveDirectory。
我们可以使用相同的凭据通过 ActiveDirectoryLdapAuthenticationProvider
登录。
Spring 属性:
spring.ldap.base=cn=Users,dc=company,dc=local
spring.ldap.password=secret
spring.ldap.username=useradmin
spring.ldap.urls=ldap://172.16.36.60:389
当读出从登录中检索到的 inetOrgPerson
时,它说:
dn="CN=useradmin,CN=Users,DC=company,DC=local"
所以我认为基础是正确的。
不,当尝试从存储库中 .findAll()
时,没有找到任何东西。我们的模型 class 目前看起来像这样。
@Entry(base="cn=Users,dc=company,dc=local",objectClasses = {"inetOrgPerson","top"})
public final class CompanyUser implements Serializable {
@Id private Name dn;
@Attribute(name="username") private String userName;
@Attribute(name="mail") private String email;
...
}
当在 @Entry
注释上省略 base
时,存储库将 return count=0。使用注释上的 base
属性,查询抛出:
javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-03100241, problem 2001 (NO_OBJECT), data 0, best match of:
'CN=Users,DC=company,DC=local'
]
如果 base 已在属性中完全定义,则不在实体 class 上添加 base 是正确的。
服务器未返回任何结果的原因,目前可以通过从 @Entry
中删除 "inetOrgPerson" 对象 class 来解决。