Sie können verschiedene Repositorytypen verwenden, wie beispielsweise LDAP-Verzeichnisse, relationale Datenbanken und unstrukturierte Dateien mit JEE- oder angepasster Sicherheit. Sie können Single Sign-on von EGL verwenden, um auf verschiedene Repositorys zuzugreifen und sie für die Anwendung, den Proxy und für Web-Services zu authentifizieren. Damit das Single Sign-on erfolgreich ist, müssen die Benutzer-ID und das zugehörige Kennwort, die der Endbenutzer in die Anmeldeanzeige eingibt, in jedem der verschiedenen Repositorys vorhanden sein.
Der gängigste Repositorytyp ist ein LDAP-Verzeichnis (Lightweight Directory Access Protocol), bei dem es sich um eine spezialisierte Datenbank handelt, die für den Lesezugriff optimiert wurde und in der die Daten in einer Baumstruktur verwaltet werden. Konfigurieren Sie vor dem Zugriff auf ein LDAP-Verzeichnis für die JEE-Authentifizierung den Anwendungsserver für die Herstellung einer Verbindung zum LDAP-Verzeichnisserver. Geben Sie diese Informationen für WebSphere Application Server in die Administrationskonsole an. Für Apache Tomcat geben Sie diese Informationen in der Datei \conf\server.xml an.
// Für den Zugriff auf einen LDAP-Verzeichnisserver sind externe Typen erforderlich.
externalType ControlArray type JavaObject
{ JavaName = "Control[]", PackageName = "javax.naming.ldap" }
end
externalType InitialDirContext type JavaObject
{ JavaName = "InitialDirContext",
PackageName = "javax.naming.directory" }
function modifyAttributes( name String in,
mods ModificationItemArray in );
end
externalType InitialLdapContext extends InitialDirContext type JavaObject
{ JavaName = "InitialLdapContext",
PackageName = "javax.naming.ldap" }
constructor( environment Hashtable in, connCtls ControlArray in );
end
externalType ModificationItemArray extends Object type JavaObject
{ JavaName = "ModificationItem[]",
PackageName = "javax.naming.directory" }
end
// Instanziieren Sie eine Hashtabelle für Bindungskriterien.
// Eine Hashtabelle ist in EGL bereits definiert.
hashtable Hashtable = new Hashtable();
// Eigenschaften finden Sie unter
// http://java.sun.com/j2se/1.4.2/docs/guide/jndi/jndi-ldap.html.
// öLegen Sie JNDI-Umgebungseigenschaften fest.
// Benutzer-ID und Kennwort werden als Zeichenfolgen (string) übergeben.
hashtable.put( "java.naming.factory.initial",
"com.sun.jndi.ldap.LdapCtxFactory" );
hashtable.put( "java.naming.provider.url",
"ldap://localhost:389/o=sample" );
hashtable.put( "java.naming.security.principal",
"uid=" + userid + ",ou=people,o=sample");
hashtable.put( "java.naming.security.credentials", password );
hashtable.put( "java.naming.security.authentication", "simple" );
hashtable.put( "java.naming.referral", "follow" );
hashtable.put( "java.naming.security.protocol", null );
// Legen Sie LDAP-spezifische Eigenschaften fest.
hashtable.put( "java.naming.ldap.version", "3" );
// Stellen Sie eine Verbindung zum LDAP-Verzeichnisserver her.
ctx InitialLdapContext = new InitialLdapContext( hashtable, null );
if ( ctx != null )
// Rufen Sie Daten ab.
...
end
Weiteren EGL-Beispielcode, einschließlich von Code, mit dem Daten in einem LDAP-Verzeichnis abgerufen und geändert werden, finden Sie in äää'EGL-LDAP-Zugriffsbeispiel' oder äää'J2EE-Sicherheit mit EGL-LDAP-Zugriffsbeispiel' in der IBM® Rational® Business Developer-Dokumentation (im 'Inhalt' unter 'Beispiele').