inchorus LDAP Plugin Dokumentation
1 Einführung #
Das LDAP-Plugin bietet Ihnen die wesentlichsten LDAP Funktionen, wie das Suchen von Objekten im Verzeichnis und das Ändern von dessen Attributen.
Folgende Funktionalitäten stehen zur Verfügung:
Verbindungsaufbau mit der Möglichkeiten der SSL Verschlüsselung (LDAPS)
Suche im Verzeichnis
Konstruktion von komplexen Such-Filtern
Ändern und Löschen von LDAP Attributen
Setzen und Ändern von Passwörtern
2 Wie wird das Plugin verwendet? #
Die wesentlichen Klassen, die die Operationen im LDAP Verzeichnis bereitstellen, sind LDAPDirectory
zum Verwalten der Verbindung, LDAPDirectorySearch
zum Suchen von Objekten im Verzeichnis und LDAPDirectoryModify
zum Ändern von Attributen der Objekte im Verzeichnis.
Als Daten-Strukturen stehen die Klassen LDAPAttribute
, LDAPObject
, LDAPFilter
und LDAPFilterGroup
zur Verfügung. Im Folgenden wird die grundlegende Verwendung dieser Klassen beschrieben, die Dokumentation der einzelnen Klassen finden Sie in der API Dokumentation.
Plugin einbinden
Öffnen Sie die Datei pom.xml Ihres inchorus Gadget Projektes und ergänzen Sie folgende Zeilen im Abschnitt "dependencies":
<dependency>
<groupId>de.guh.plugin</groupId>
<artifactId>inchorus-ldap-plugin</artifactId>
<version>2.0.2</version>
</dependency>
Verbindungsaufbau
Die Verbindung zum LDAP Server wird beim Instanziieren eines LDAPDirectory
Objekts aufgebaut:
LDAPDirectory ldapDir = new LDAPDirectory(
"ldap.guh-systems.de",
636,
"cn=TestBenutzer,ou=User,o=GUH",
"passwort!",
true,
"c:\\pfad\\zum\\.keystore",
"changeit",
true
);
// Operationen auf dem Verzeichnis...
ldapDir.closeConnection();
Mit dieser Instanziierung wird die Verbindung zum LDAP Server ldap.guh-systems.de
am Port 636
für den User mit dem DN (Distinguished Name) cn=TestBenutzer,ou=User,o=GUH
und dem Passwort passwort!
hergestellt. Das erste true
gibt an, dass die Verbindung mit SSL aufgebaut werden soll, der Pfad gibt den Pfad zum Keystore an und changeit
ist das dazugehörige Passwort. Der letzte Boolean in der Parameterliste gibt an, ob ein Keystore automatisch erzeugt werden soll, wenn er nicht am angegeben Pfad existiert. Damit die .keystore Datei erzeugt werden kann, muss der angegebene Pfad existieren.
Nach dem Ausführen der benötigten Operationen über den LDAP Server, sollte die Verbindung mit einem Aufruf von closeConnection()
geschlossen werden. Die einzelnen Parameter und alternative Initialisierungsvarianten finden Sie in der API Dokumentation.
Suchen und Filtern
Suchen von Objekten mit Filtern geschieht über die Klasse LDAPDirectorySearch
:
LDAPObject objectUser = new LDAPObject("user");
LDAPAttribute attributeName = new LDAPAttribute("name");
objectUser.addAttribute(attributeName);
LDAPFilter filterName = new LDAPFilter(
attributeName,
LDAPFilter.expression_EQUAL,
"TestBenutzer"
);
LDAPDirectorySearch search = new LDAPDirectorySearch(
ldapDir,
objectUser,
LDAPScope.SUB,
"O=GUH"
);
search.addLDAPFilter(filterName);
XML xmlResult = search.getXML("users", "user");
Als erstes wird das LDAPObject
definiert, nach dem gesucht werden soll. In diesem Fall hat es die Klasse user
, die anhand des Attributes name
gefiltert werden soll. Dafür wird dem Objekt ein LDAPAttribute
mit dem Namen name
zugewiesen und ein LDAPFilter
wird erstellt, der nach dem Attribut name
filtert, dessen Wert "TestBenutzer"
entsprechen soll.
Als nächstes kann das LDAPDirectorySearch
Objekt erstellt werden, welches das Verzeichnis, in dem gesucht werden soll, und das Objekt übergeben bekommt. Außerdem wird der Scope
und die Basis für die Suche definiert. Anschließend kann der Filter der Suche hinzugefügt und die Suche ausgeführt werden. In diesem Fall wird das Ergebnis der Suche als XML Objekt angefordert, das als Wurzelknoten <users>
besitzt und als Kindknoten <user>
, welche die Attribute der Suchergebnisse als weitere Knoten enthalten.
Mit getResultCode()
lässt sich im Anschluss an die Suche der Statuscode abfragen. Statt die Ergebnisse als XML zu erhalten, können einzelne Werte des Suchergebnisses mit getArray(name)
als String Array abgefragt werden oder mit getString(name)
, wenn nur ein einzelnes Ergebnis erwartet wird. Wird "objectdn"
als name
eingetragen, erhält man die Objekt-DNs als Ergebnis, wählt man als name
einen Attributnamen, bekommt man den Wert dieses Attributs.
Mit LDAPFilterGroup
können Filtergruppen erstellt werden, die eine Kombination (AND/OR) aus mehrere Filtern oder weiteren Filtergruppen darstellen und zur Suche hinzugefügt werden können. Genauere Informationen dazu finden Sie in den Beispielen und der API Dokumentation.
Modifizieren von Attributen
Das Modifizieren von Attributen der Objekte im Verzeichnis geschieht über die Klasse LDAPDirectoryModify
:
LDAPObject objectUser = new LDAPObject("user", "cn=TestBenutzer,ou=User,o=GUH");
LDAPAttribute attributeName = new LDAPAttribute("name");
LDAPDirectoryModify modify = new LDAPDirectoryModify(ldapDir, objectUser);
Boolean success = modify.modifyAttribute(attributeName, "NeuerName", false);
Als erstes wird das Objekt definiert, welches geändert werden soll. Wichtig ist hier, dass der eindeutige DN angegeben wird, damit das betroffene Objekt im Verzeichnis gefunden werden kann. Danach wird das Attribut definiert, welches geändert werden soll, in diesem Fall das Attribut name
. Das LDAPDirectoryModify
Objekt wird mit dem betroffenen Verzeichnis und Objekt erzeugt, um darauf die Modifikation auszuführen. Im letzten Schritt wird das Attribut im angegebenen Objekt (TestBenutzer) auf den neuen Wert NeuerName
gesetzt. Der Rückgabewert ist ein Indikator, ob das Umbenennen erfolgreich war. Das letzte Boolean-Attribut der Methode modifyAttribute()
gibt an, ob eine auxiliary class
, die dem neuen Attribut zugeordnet ist, automatisch dem Objekt hinzugefügt werden soll, fall dieses dort noch nicht existiert. In diesem Beispiel hat das Attribut keine auxiliary class
, daher kann der Wert auf false
gesetzt werden.
Auf die gleich Weise werden die Methoden zum Löschen von Attributen deleteAttribute(attr)
und zum Setzen und Ändern von Passwörtern setPassword("newPassword")
bzw. modifyPassword("oldPassword", "newPassword")
verwendet.
3 Weitere Informationen #
Nähere Informationen zu den Klassen und Methoden finden sie in der API Dokumentation.
Beispiele finden Sie im Ordner Beispiele.
Bei Fragen und Anregungen nutzen Sie unser inchorus Forum.
Dieses Dokument erhalten sie hier auch als PDF.
4 Ihr Kontakt #
G+H Systems GmbH
Professionell, effizient und zuverlässig.
Ludwigstraße 8
63067 Offenbach am Main
Deutschland
Telefon: +49 (0) 69 85 00 02 - 0
Fax: +49 (0) 69 85 00 02 - 51
Email: info@guh-systems.de
Web: www.guh-systems.de
5 Rechtliche Hinweise #
Die G+H Systems leistet keinerlei Gewähr bezüglich des Inhaltes oder Gebrauchs dieser Dokumentation. Insbesondere werden keine ausdrücklichen oder stillschweigenden Gewährleistungen hinsichtlich der handelsüblichen Qualität oder Eignung für einen bestimmten Zweck übernommen. Die G+H Systems behält sich weiterhin das Recht vor, diese Dokumentation zu revidieren und ihren Inhalt jederzeit und ohne vorherige Ankündigung zu ändern.
Des Weiteren übernimmt die G+H Systems für Software keinerlei Haftung und schließt insbesondere jegliche ausdrücklichen oder impliziten Gewährleistungsansprüche bezüglich der Marktfähigkeit oder der Eignung für einen bestimmten Zweck aus. Außerdem behält sich die G+H Systems das Recht vor, G+H Software ganz oder teilweise jederzeit inhaltlich zu ändern, ohne dass für die G+H Systems die Verpflichtung entsteht, Personen oder Organisationen von diesen Überarbeitungen oder Änderungen in Kenntnis zu setzen.
Copyright © inchorus ist ein Produkt der G+H Systems GmbH
Ohne ausdrückliche, schriftliche Genehmigung des Herausgebers darf kein Teil dieser Veröffentlichung reproduziert, fotokopiert, übertragen oder in einem Speichersystem verarbeitet werden.