LDAP - Eintrag löschen

  • Themenstarter Themenstarter Tropico85
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
T

Tropico85

Gast
Hallo zusammen,

ich möchte aus einem LDAP Verzeichnis einen Eintrag löschen.
Ich habe schon in einigen Quellen nachgeschaut und nachfolgenden Code gefunden:

Code:
// LDAP-Verbindung aufbauen
...
DirContext ctx = new InitialDirContext();
ctx.unbind("sn=xyz,ou=personen");
...
Leider funktioniert das ganze nicht, und ich weiß nicht warum.
Vielleicht kann mir einer auf die Sprünge helfen.

Dankeschön!
 
Fehlermeldung?
Genauere Beschreibung der Umgebung wäre auch noch interessant.

ms
 
LDAP ist eigentlich nicht dafür gedacht bzw. meist zum lesen verwendet, wahrscheinlich fehlen dir die Rechte.
 
Du hast Recht. Eine Fehlermeldung wäre ganz hilfreich...

Exception in thread "main" javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object];

Ich habe es allerdings auch schon geschafft den Code ohne Fehler durchlaufen zu lassen. Danach war der Eintrag aber immer noch vorhanden....
 
Wie hast du den überprüft ob der Eintrag gelöscht ist?
Möglicherweise nur ein Refreshproblem deines Ldap-Clienttool?

ms
 
Tropico85 hat gesagt.:
Hallo zusammen,

ich möchte aus einem LDAP Verzeichnis einen Eintrag löschen.
Ich habe schon in einigen Quellen nachgeschaut und nachfolgenden Code gefunden:

Code:
// LDAP-Verbindung aufbauen
...
DirContext ctx = new InitialDirContext();
ctx.unbind("sn=xyz,ou=personen");
...
Leider funktioniert das ganze nicht, und ich weiß nicht warum.
Vielleicht kann mir einer auf die Sprünge helfen.

Dankeschön!

Wenn ich dir eins empfehlen kann, dann ist bezüglich LDAP das Aufsuchen des Sun Java forums/subforum JNDI:

http://forum.java.sun.com/forum.jspa?forumID=51

das Beste was du machen kannst. Benutzt die Suche dort und du bekommst für jede exception genügend Antworten warums net tut.

Vor allem arbeite dich in die Grundlagen ein:

http://java.sun.com/products/jndi/tutorial/trailmap.html

Zu deiner NamingException:

http://java.sun.com/docs/books/tutorial/jndi/ldap/exceptions.html

wenn du einen Eintrag löschen willst macht man das sicher nicht mit unbind...

Code:
try
			    {
					InitialLdapContext ctx = new InitialLdapContext(initConnection(),null);					
					ModificationItem[] mods = new ModificationItem[1];
					mods[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE,new BasicAttribute("nsAccountLock", "true"));
					ctx.modifyAttributes("DN des Benutzers", mods); 								
					System.out.println("Das Benutzerkonto von: " + "DN des Benutzers" + "wurde deaktiviert");
					
					ctx.close(); 
				} 
				catch (NamingException e)
				{
					System.err.println("Konto konnte nicht deaktiviert werden: " + e);
				}

dieser Codeschnipsel ist schon lange als dass ich in noch erklären könnte ^^ aber wichtig für dich um einen ldap eintrag zu löschen ist das ModificationItem, modifyAttributes, und ADD_ATTRIBUTE gibt auch noch REMOVE_ATTRIBUTE etc...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben