Spring LDAP Base配置

时间:2017-08-12 05:25:16

标签: java spring spring-mvc ldap jndi

我的目录结构为

ou=studentBase,dc=example,dc=com

在我的安全XML中,我有

<bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
  <property name="base" value="ou=studentBase,dc=example,dc=com" />
  <property name="url" value="ldaps://serveraddress:port" />
  <property name="userDn" value="username" />
  <property name="password" value="pwd" />
</bean>

我想要查询容器对象的属性

cn=container,cn=schema,cn=configuration,dc=example,dc=com

当我使用基本设置搜索

cn=container,cn=schema,cn=configuration,dc=example,dc=com

ldapTemplate.search(base, filter.encode(), new AttributesMapper()){
}

我收到错误

org.springframework.ldap.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-03100238, problem 2001 (NO_OBJECT), data 0, best match of: 'ou=studentBase,dc=example,dc=com']; nested exception is
javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-03100238, problem 2001 (NO_OBJECT), data 0, best match of:
    'ou=studentBase,dc=example,dc=com']; remaining name cn=container,cn=schema,cn=configuration,dc=example,dc=com

问题是我无法更改基础来搜索除了我放入xml配置文件的基础之外的任何内容。我也试过了SearchControls并遇到了同样的问题。我怎样才能在不同的基础上搜索。我已经编写了整个应用程序,无法解决这个问题。

0 个答案:

没有答案