2

Spring LdapTemplate を介して LDAP エントリをバインド解除するにはどうすればよいですか?

LDAP エントリ uid=johnsmith@example.com,objectClass=posixAccount があります。問題があるかどうかはわかりませんが、johnsmith@example.com も group1 のメンバーです。

com  
  |
  +--example (dc=example,objectClass=organization)
       |
       +--groups (ou=groups,objectClass=organizationUnit)
       |    |
       |    +--group1 (cn=group1,objectClass=groupOfNames)
       |    +--group2 (cn=group2,objectClass=groupOfNames)
       |
       +--people (ou=people,objectClass=organizationUnit)
            |
            +--johnsmith@example.com (uid=johnsmith@example.com,objectClass=posixAccount)
            +--janesmith@example.com (uid=janesmith@example.com,objectClass=posixAccount)

これまでに試したこと:

Name dn = new DistinguishedName();
dn.add("ou", "people");
dn.add("uid", "johnsmith@example.com");

ldapTemplate.unbind(dn);

ただし、例外がスローされなくても、LDAP エントリは削除されません。

再帰的なアンバインドも試しました:

Name dn = new DistinguishedName();
dn.add("ou", "people");
dn.add("uid", "johnsmith@example.com");

ldapTemplate.unbind(dn, true);

しかし、次のエラーが表示されます。

Exception occurred in target VM: [LDAP: error code 32 - No Such Object]; nested exception is javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'uid=johnsmith@example.com,ou=people'  org.springframework.ldap.NameNotFoundException: [LDAP: error code 32 - No Such Object]; nested exception is javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'uid=johnsmith@example.com,ou=people'
at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:174)
at org.springframework.ldap.core.LdapTemplate.deleteRecursively(LdapTemplate.java:1122)
at org.springframework.ldap.core.LdapTemplate$25.executeWithContext(LdapTemplate.java:1083)
at org.springframework.ldap.core.LdapTemplate.executeWithContext(LdapTemplate.java:807)
at org.springframework.ldap.core.LdapTemplate.executeReadWrite(LdapTemplate.java:802)
at org.springframework.ldap.core.LdapTemplate.doUnbindRecursively(LdapTemplate.java:1081)
at org.springframework.ldap.core.LdapTemplate.unbind(LdapTemplate.java:1044)
(etc....)

編集:問題が見つかりました。uid にタイプミスがあったため、バインド解除で LDAP エントリが削除されませんでした...

4

0 に答える 0