Schnittstelle "UserRegistry" für die Verwendung angepasster Registrys entwickeln
Wenn Sie diese Schnittstelle implementieren, kann die Sicherheit von WebSphere Application Server mit angepassten Registrys arbeiten. Dadurch wird die Datei java.rmi erweitert. Mit einer fernen Registry können Sie diesen Prozess über ein fernes System ausführen.
Informationen zu diesem Vorgang
Stellen Sie Implementierungen der folgenden Methoden bereit.
Vorgehensweise
- Initialisieren Sie die Methode "UserRegistry" mit "initialize(java.util.Properties)".
Diese Methode wird zur Initialisierung der Methode "UserRegistry" aufgerufen. Alle Eigenschaften, die in der Anzeige der angepassten Benutzerregistry definiert sind, werden an diese Methode weitergegeben.public void initialize(java.util.Properties props) throws CustomRegistryException, RemoteException;
In der Beispieldatei FileRegistrySample.java ruft die Initialisierungsmethode die Namen der Registrydateien, die die Benutzer- und Gruppendaten enthalten, ab.
Diese Methode wird beim Serverstart aufgerufen, um die Registry zu initialisieren. Die Methode wird ebenfalls aufgerufen, wenn die Administrationskonsole bei aktivierter Sicherheitskomponente eine Validierung durchführt. Diese Methode ist dieselbe wie in Version 4.x.
- Authentifizieren Sie die Benutzer mit "checkPassword(String,String)".
Die Methode checkPassword wird aufgerufen, um Benutzer zu authentifizieren, wenn sie sich mit einem Namen oder einer Benutzer-ID und einem Kennwort anmelden. Sie gibt eine Zeichenfolge zurück, die in den meisten Fällen den Sicherheitsnamen des Benutzers angibt. Dann wird eine Berechtigung für den Benutzer erstellt. Dieser Benutzername wird auch beim Enterprise-Bean-Aufruf getCallerPrincipal und den Servletaufrufen getUserPrincipal und getRemoteUser zurückgegeben. Wenn Ihre Registry Anzeigenamen enthält, finden Sie weitere Informationen über die Methode "getUserDisplayName". Wenn Sie in bestimmten Situationen einen anderen als den angemeldeten Benutzer zurückgeben, sollten Sie sich vergewissern, dass der Benutzer für die Registry gültig ist.public String checkPassword(String userSecurityName, String password) throws PasswordCheckFailedException CustomRegistryException, RemoteException;
Die Methode "mapCertificate" im Beispiel FileRegistrySample.java ruft den definierten Namen (DN) aus der Zertifizierungskette ab und stellt sicher, dass ein gültiger Benutzer in der Registry vorhanden ist, bevor der Benutzername zurückgegeben wird. Die Methode "checkPassword" überprüft die Name/Kennwort-Kombination in der Benutzerregistry und gibt, sofern die Daten gültig sind, den authentifizierten Benutzer zurück.
Diese Methode wird für verschiedene Szenarien aufgerufen, z. B. von der Administrationskonsole, um die Benutzerdaten nach der Initialisierung der Benutzerregistry zu validieren. Sie wird auch aufgerufen, wenn Sie auf geschützte Ressourcen im Produkt zugreifen, um den Benutzer zu authentifizieren bzw. bevor der Berechtigungsprozess fortgesetzt wird. Diese Methode ist dieselbe wie in Version 4.x.
- Rufen Sie die Benutzernamen aus den X.509-Zertifikaten mit "mapCertificate(X509Certificate[])" ab.
Die Methode "mapCertificate" wird aufgerufen, um einen Benutzernamen über eine vom Browser bereitgestellte X.509-Zertifikatskette abzurufen. Die vollständige Zertifikatskette wird an diese Methode übergeben, und die Implementierung kann, falls erforderlich, die Kette validieren und die Benutzerdaten abrufen. Dann wird eine Berechtigung für den Benutzer erstellt. Wenn Browserzertifikate in Ihrer Konfiguration nicht unterstützt werden, können Sie die Ausnahme CertificateMapNotSupportedException auslösen. Wenn keine Zertifikate unterstützt werden, hat dies zur Folge, dass die Authentifizierung scheitert, falls der Abfragetyp auf Zertifikate eingestellt ist. Die ist auch dann der Fall, wenn der Browser gültige Zertifikate besitzt.public String mapCertificate(X509Certificate[] cert) throws CertificateMapNotSupportedException, CertificateMapFailedException, CustomRegistryException, RemoteException;
Diese Methode wird aufgerufen, wenn Zertifikate für die Authentifizierung bereitgestellt werden. Wenn die Authentifizierungsvorgaben für Webanwendungen in der Datei web.xml auf CLIENT-CERT gesetzt ist, wird diese Methode aufgerufen, um ein Zertifikat einem gültigen Benutzer in der Registry zuzuordnen. Bei Java™-Clients wird diese Methode aufgerufen, um bei der Authentifizierung über die Transportschicht die Clientzertifikate in der Transportschicht zuzuordnen. Wenn das Token für Identitätszusicherung bei Verwendung des Authentifizierungsprotokolls CSIv2 so konfiguriert ist, dass es Zertifikate enthält, wird diese Methode ebenfalls aufgerufen, um die Zertifikate einem gültigen Benutzer zuzuordnen.
In WebSphere Application Server Version 4.x war der Eingabeparameter das X509Certificate-Zertifikat. In WebSphere Application Server Version 5.x und höher akzeptiert dieser Parameter ein Array von X509-Zertifikaten, z. B. eine Zertifizierungskette. In Version 4.x wird dieser Parameter nur für Webanwendungen aufgerufen, aber in Version 5.x und höher kann die Methode für web und Java-Clients aufgerufen werden.
- Rufen Sie den Namen des Sicherheitsrealms mit "getRealm" ab.
Die Methode "getRealm" wird aufgerufen, um den Namen des Sicherheitsbereichs abzurufen. Der Name des Bereichs gibt die Sicherheitsdomäne an, für die die Registry Benutzer authentifiziert. Wenn diese Methode einen Nullwert zurückgibt, wird ein customRealm-Standardname verwendet.public String getRealm() throws CustomRegistryException, RemoteException;
In der Beispieldatei FileRegistrySample.java gibt die Methode "getRealm" die customRealm-Zeichenfolge zurück. Diese Methode wird z. B. aufgerufen, wenn die Daten in der Benutzerregistry validiert werden. Diese Methode ist dieselbe wie in Version 4.x.
- Rufen Sie die Liste der Benutzer aus der Registry mit "getUsers(String,int)" ab.
Die Methode "getUsers" gibt die Liste der Benutzer aus der Registry zurück. Die Benutzernamen sind vom Parameter "pattern" abhängig. Die Anzahl der Benutzer wird vom Parameter "limit" begrenzt. In einer Registry mit vielen Benutzern ist das Abrufen aller Benutzer nicht praktikabel. Der Parameter "limit" wurde eingeführt, um die Anzahl der Benutzer, die von der Registry abgerufen werden, begrenzen zu können. Der Grenzwert 0 gibt an, dass alle Benutzer, die mit dem Muster übereinstimmen, zurückgegeben werden sollen. Bei großen Registrys kann das zu Problemen führen. Verwenden Sie diesen Grenzwert mit Vorsicht.public Result getUsers(String pattern, int limit) throws CustomRegistryException, RemoteException;
Die Implementierungen der angepassten Registry sollten zumindest die Suche mit Platzhalterzeichen (*) unterstützen. Beispiel: Bei Angabe des Musters Stern (*) werden alle Benutzer zurückgegeben; bei Angabe des Musters (b*) werden die Benutzer, die mit b beginnen, zurückgegeben.
Der Rückgabeparameter ist ein Objekt des Typs com.ibm.websphere.security.Result. Dieses Objekt enthält zwei Attribute, java.util.List und java.lang.boolean. Die Liste enthält alle zurückgegebenen Benutzer, und der Boolesche Wert zeigt an, ob in der Benutzerregistry weitere Benutzer für das Suchmuster vorhanden sind. Dieser Boolesche Wert wird verwendet, um den Client zu informieren, ob weitere Benutzer in der Registry verfügbar sind.
In der Beispieldatei FileRegistrySample.java wird mit getUsers die erforderliche Anzahl der Benutzer aus der Benutzerregistry abgerufen und als Liste in das Ergebnisobjekt gestellt. Wenn Sie feststellen möchten, ob mehr Benutzer als angefordert vorhanden sind, ruft das Beispiel einen Benutzer mehr als angefordert ab. Kann der zusätzliche Benutzer ermittelt werden, wird der Boolesche Wert auf true gesetzt. Für die Mustererkennung wird die Methode "match" aus der Klasse "RegExpSample" verwendet, die Platzhalterzeichen wie den Stern (*) und das Fragezeichen (?) unterstützt..
Diese Methode wird von der Administrationskonsole aufgerufen, um in den dafür vorgesehenen Anzeigen Benutzer Rollen zuzuordnen. Die Administrationskonsole verwendet das im Ergebnisobjekt definierte Boolesche Flag, um anzuzeigen, dass weitere mit dem Muster übereinstimmende Einträge in der Benutzerregistry verfügbar sind.
In WebSphere Application Server Version 4.x akzeptierte diese Methode nur den Parameter "pattern". Die Rückgabe erfolgte in Form einer Liste. In WebSphere Application Server Version 5.x und höher unterstützt die Methode einen weiteren Parameter, den Grenzwert (limit). Im Idealfall wird die Implementierung dahingehend geändert, dass sie den Grenzwert übernimmt und die Anzahl der zurückgegebenen Benutzer begrenzt. Die Rückgabe erfolgt jetzt in Form eines Ergebnisobjekts, das eine Liste und ein Flag enthält. Das Flag zeigt an, ob weitere Einträge vorhanden sind. Wenn die Liste zurückgegeben wird, können Sie mit der Methode "Result.setList(List)" die Liste im Ergebnisobjekt festlegen. Falls der Parameter "limit" mehr Einträge als gefordert enthält, setzen Sie das Boolesche Attribut im Ergebnisobjekt auf true. Verwenden Sie hierfür die Methode "Result.setHasMore". Die Standardeinstellung für das Boolesche Attribut im Ergebnisobjekt ist false.
- Rufen Sie den Anzeigenamen eines Benutzers mit "getUserDisplayName(String)" ab.
Die Methode "getUserDisplayName" gibt einen Anzeigenamen für einen Benutzer zurück, falls vorhanden. Der Anzeigename ist eine optionale Zeichenfolge, die den Benutzer, den Sie in einigen Registrys definieren können, beschreibt. Dabei handelt es sich um einen beschreibenden Namen für den Benutzer, der in der Registry nicht eindeutig sein muss.public String getUserDisplayName(String userSecurityName) throws EntryNotFoundException, CustomRegistryException, RemoteException;
Auf IBM® i-Systemen können Sie beispielsweise die Textbeschreibung für das Benutzerprofil anzeigen.
Sie können beispielsweise in Windows-Systemen den vollständigen Namen des Benutzers anzeigen.
Wenn Sie keine Anzeigenamen in Ihrer Registry benötigen, geben Sie einen Nullwert oder eine leere Zeichenfolge für diese Methode zurück.
Wenn Anzeigenamen für Benutzer in WebSphere Application Server Version 4.x vorhanden sind, sind diese Namen für den EJB-Methodenaufruf "getCallerPrincipal" hilfreich, und das Servlet ruft getUserPrincipal und getRemoteUser auf. Falls der Anzeigenamen nicht mit dem Sicherheitsnamen eines Benutzers übereinstimmte, wurden die Anzeigenamen für die zuvor genannten Enterprise-Beans und Servlet-Methoden zurückgegeben. Die Rückgabe von Anzeigenamen für diese Methoden kann in bestimmten Situationen problematisch werden, da die Anzeigenamen in der Benutzerregistry möglicherweise nicht eindeutig sind. Umgehen Sie dieses Problem, indem Sie das Standardverhalten so ändern, dass in dieser Version des Produkts anstelle des Anzeigenamens des Benutzers der Sicherheitsname des Benutzers zurückgegeben wird. Nähere Informationen zum Definieren von Eigenschaften für die angepasste Registry finden Sie im Abschnitt Eigenschaften für angepasste Registrys definieren.
In der Beispieldatei FileRegistrySample.java gibt diese Methode den Anzeigenamen des Benutzers zurück, dessen Name dem angegebenen Benutzernamen entspricht. Ist der Anzeigename nicht vorhanden, gibt diese Methode eine leere Zeichenfolge zurück.
Diese Methode kann vom Produkt zur Anzeige der Anzeigenamen über die Administrationskonsole oder über die Befehlszeile mit dem Tool wsadmin aufgerufen werden. Verwenden Sie diese Methode nur zum Anzeigen. Diese Methode ist dieselbe wie in Version 4.x.
- Rufen Sie die eindeutige ID eines Benutzers mit "getUniqueUserId(String)" ab.
Die Methode gibt die eindeutige ID des Benutzers zurück, wenn der Sicherheitsname angegeben ist.public String getUniqueUserId(String userSecurityName) throws EntryNotFoundException, CustomRegistryException, RemoteException;
In der Beispieldatei FileRegistrySample.java gibt diese Methode die eindeutige ID des Benutzers zurück, dessen Name dem angegebenen Namen entspricht. Diese Methode wird aufgerufen, wenn eine Berechtigung für einen Benutzer erstellt wird. Sie wird ebenfalls verwendet, wenn die Berechtigungstabelle für die Anwendung erstellt wird.
- Rufen Sie den Sicherheitsnamen eines Benutzers mit "getUserSecurityName(String)" ab.
Diese Methode gibt den Sicherheitsnamen eines Benutzers zurück, wenn die eindeutige ID angegeben ist. In der Beispieldatei FileRegistrySample.java gibt diese Methode den Sicherheitsnamen des Benutzers zurück, dessen eindeutige ID der angegebenen ID entspricht.public String getUserSecurityName(String uniqueUserId) throws EntryNotFoundException, CustomRegistryException, RemoteException;
Diese Methode wird aufgerufen, um sicherzustellen, dass für eine bestimmte eindeutige Benutzer-ID ein gültiger Benutzer vorhanden ist. Diese Methode wird z. B. aufgerufen, um den Sicherheitsnamen des Benutzers abzurufen, wenn die eindeutige Benutzer-ID über ein Token abgerufen wird.
- Prüfen Sie mit "isValidUser(String)", ob ein bestimmter Benutzer ein gültiger Benutzer in der Registry ist.
Diese Methode zeigt an, ob der angegebene Benutzer ein gültiger Benutzer für die Registry ist.public boolean isValidUser(String userSecurityName) throws CustomRegistryException, RemoteException;
In der Beispieldatei FileRegistrySample.java gibt diese Methode den Wert true zurück, wenn der Benutzer in der Registry ermittelt wird. Ist dies nicht der Fall, gibt die Methode den Wert false zurück. Diese Methode wird hauptsächlich in Situationen aufgerufen, in denen es zur Vermeidung späterer Fehler von Vorteil ist, zu wissen, ob der entsprechende Benutzer im Verzeichnis vorhanden ist. Wenn Sie z. B. beim mapCertificate-Aufruf den Namen vom Zertifikat abgerufen haben und feststellen, dass der Benutzer für die Benutzerregistry ungültig ist, brauchen Sie nicht mehr zu versuchen, die Berechtigung für den Benutzer zu erstellen.
- Geben Sie die Liste der Gruppen aus der Benutzerregistry mit "getGroups(String,int)" zurück.
Die Methode "getGroups" gibt die Liste der Gruppen aus der Benutzerregistry zurück. Die Gruppennamen sind vom Parameter "pattern" abhängig. Die Anzahl der Gruppen wird vom Parameter "limit" begrenzt. In einer Registry mit vielen Benutzern ist das Abrufen aller Gruppen nicht praktikabel. Der Parameter "limit" wurde eingeführt, um die Anzahl der Gruppen, die aus der Benutzerregistry abgerufen werden, begrenzen zu können. Der Grenzwert 0 gibt an, dass alle Gruppen, die mit dem Muster übereinstimmen, zurückgegeben werden sollen. Bei großen Benutzerregistrys kann das zu Problemen führen. Verwenden Sie diesen Grenzwert mit Vorsicht. Die Implementierungen der angepassten Registry sollten zumindest die Suche mit Platzhalterzeichen (*) unterstützen. Beispiel: Bei Angabe des Musters Stern (*) werden alle Benutzer zurückgegeben; bei Angabe des Musters (b*) werden die Benutzer, die mit b beginnen, zurückgegeben.public Result getGroups(String pattern, int limit) throws CustomRegistryException, RemoteException;
Der Rückgabeparameter ist ein Objekt des Typs com.ibm.websphere.security.Result. Das Objekt enthält die Attribute java.util.List und java.lang.boolean. In der Liste sind die zurückgegebenen Gruppen aufgeführt. Außerdem enthält die Liste das Boolesche Flag, das anzeigt, ob für das gesuchte Muster weitere Gruppen in der Benutzerregistry verfügbar sind. Das Boolesche Flag wird verwendet, um den Client zu informieren, ob weitere Gruppen in der Registry verfügbar sind.
In der Beispieldatei FileRegistrySample.java wird mit der Methode "getUsers" die erforderliche Anzahl der Gruppen aus der Benutzerregistry abgerufen und als Liste in das Ergebnisobjekt gestellt. Wenn Sie feststellen möchten, ob mehr Gruppen als angefordert vorhanden sind, ruft das Beispiel einen Benutzer mehr als angefordert ab. Kann der zusätzliche Benutzer ermittelt werden, wird der Boolesche Wert auf true gesetzt. Für die Mustererkennung wird die Methode "match" aus der Klasse "RegExpSample" verwendet, die Platzhalterzeichen wie den Stern (*) und das Fragezeichen (?) unterstützt.
Diese Methode wird von der Administrationskonsole aufgerufen, um in den dafür vorgesehenen Anzeigen Gruppen Rollen zuzuordnen. Die Administrationskonsole verwendet das im Ergebnisobjekt definierte Boolesche Flag, um anzuzeigen, dass weitere mit dem Muster übereinstimmende Einträge in der Benutzerregistry verfügbar sind.
In WebSphere Application Server Version 4 akzeptierte diese Methode nur den Parameter "pattern", und die Rückgabe erfolgte in Form einer Liste. In WebSphere Application Server Version 5.x und höher unterstützt die Methode den zusätzlichen Parameter "limit". Im Idealfall wird die Implementierung dahingehend geändert, dass sie den Grenzwert übernimmt und die Anzahl der zurückgegebenen Benutzer begrenzt. Die Rückgabe erfolgt jetzt in Form eines Ergebnisobjekts, das eine Liste und ein Flag enthält. Das Flag zeigt an, ob weitere Einträge vorhanden sind. Wenn die Liste zurückgegeben wird, können Sie die Methode "Result.setList(List)" verwenden, um die Liste im Ergebnisobjekt zu definieren. Falls der Parameter "limit" mehr Einträge als gefordert enthält, setzen Sie das Boolesche Attribut im Ergebnisobjekt auf true. Verwenden Sie hierfür die Methode "Result.setHasMore". Die Standardeinstellung für das Boolesche Attribut im Ergebnisobjekt ist false.
- Rufen Sie den Anzeigenamen einer Gruppe mit "getGroupDisplayName(String)" ab.
Die Methode "getGroupDisplayName" gibt einen Anzeigenamen für eine Gruppe zurück, falls vorhanden. Der Anzeigename ist eine optionale Zeichenfolge, die die Gruppe, die Sie in einigen Benutzerregistrys definieren können, beschreibt. Dabei handelt es sich um einen beschreibenden Namen für die Gruppe, der in der Registry nicht eindeutig sein muss. Wenn Sie keine Anzeigenamen für Gruppen in Ihrer Registry benötigen, geben Sie einen Nullwert oder eine leere Zeichenfolge für diese Methode zurück.public String getGroupDisplayName(String groupSecurityName) throws EntryNotFoundException, CustomRegistryException, RemoteException;
In der Beispieldatei FileRegistrySample.java gibt diese Methode den Anzeigenamen der Gruppe zurück, deren Name dem angegebenen Gruppennamen entspricht. Ist der Anzeigename nicht vorhanden, gibt diese Methode eine leere Zeichenfolge zurück.
Das Produkt kann diese Methode aufrufen, um die Anzeigenamen über die Administrationskonsole oder über die Befehlszeile mit dem Tool wsadmin anzuzeigen. Diese Methode wird nur für die Anzeige verwendet.
- Rufen Sie die eindeutige ID einer Gruppe mit "getUniqueGroupId(String)" ab.
Die Methode gibt die eindeutige ID der Gruppe zurück, wenn der Sicherheitsname angegeben ist.public String getUniqueGroupId(String groupSecurityName) throws EntryNotFoundException, CustomRegistryException, RemoteException;
In der Beispieldatei FileRegistrySample.java gibt diese Methode den Sicherheitsnamen der Gruppe zurück, deren eindeutige ID der angegebenen ID entspricht. Diese Methode wird aufgerufen, um sicherzustellen, dass für eine bestimmte eindeutige Gruppen-ID eine gültige Gruppe vorhanden ist.
- Rufen Sie die eindeutigen IDs aller Gruppen, zu denen ein Benutzer gehört, mit "getUniqueGroupIds(String)" ab.
Diese Methode gibt die eindeutigen IDs aller Gruppen zurück, zu denen ein Benutzer gehört.public List getUniqueGroupIds(String uniqueUserId) throws EntryNotFoundException, CustomRegistryException, RemoteException;
In der Beispieldatei FileRegistrySample.java gibt diese Methode die eindeutigen IDs aller Gruppen, die diese eindeutige Benutzer-ID enthalten, zurück. Die Methode wird aufgerufen, wenn die Berechtigung für den Benutzer erstellt wird. Beim Erstellen der Berechtigung werden alle eindeutigen Gruppen-IDs (groupUniqueIds), zu denen dieser Benutzer gehört, erfasst und in die Berechtigung aufgenommen, die Gruppen benötigen, um auf bestimmte Ressourcen zugreifen zu können.
- Rufen Sie den Sicherheitsnamen einer Gruppe mit "getGroupSecurityName(String)" ab.
Diese Methode gibt den Sicherheitsnamen einer Gruppe zurück, wenn deren eindeutige ID angegeben ist.public String getGroupSecurityName(String uniqueGroupId) throws EntryNotFoundException, CustomRegistryException, RemoteException;
In der Beispieldatei FileRegistrySample.java gibt diese Methode den Sicherheitsnamen der Gruppe zurück, deren eindeutige ID der angegebenen ID entspricht. Diese Methode wird aufgerufen, um sicherzustellen, dass für eine bestimmte eindeutige Gruppen-ID eine gültige Gruppe vorhanden ist.
- Prüfen Sie mit "isValidGroup(String)", ob eine Gruppe eine gültige Gruppe in der Registry ist.
Diese Methode zeigt an, ob die angegebene Gruppe für die Registry gültig ist.public boolean isValidGroup(String groupSecurityName) throws CustomRegistryException, RemoteException;
In der Beispieldatei FileRegistrySample.java gibt diese Methode den Wert true zurück, wenn die Gruppe in der Registry gefunden wird. Ist dies nicht der Fall, gibt die Methode den Wert false zurück. Diese Methode kann in Situationen aufgerufen werden, in denen es zur Vermeidung späterer Fehler von Vorteil ist, zu wissen, ob die entsprechende Gruppe im Verzeichnis vorhanden ist.
- Rufen Sie alle Gruppen, zu denen ein Benutzer gehört, mit "getGroupsForUser(String)" ab.
Diese Methode gibt alle Gruppen zurück, zu denen ein Benutzer, dessen Name mit dem angegebenen Namen übereinstimmt, gehört. Diese Methode gleicht der Methode "getUniqueGroupIds" mit der Ausnahme, dass Sicherheitsnamen anstelle von eindeutigen IDs verwendet werden.public List getGroupsForUser(String userSecurityName) throws EntryNotFoundException, CustomRegistryException, RemoteException;
In der Beispieldatei FileRegistrySample.java gibt diese Methode die Sicherheitsnamen aller Gruppen zurück, die den userSecurityName-Namen enthalten.
Diese Methode wird von der Administrationskonsole oder vom Scripting-Tool aufgerufen, um zu prüfen, ob die Benutzer, die RunAs-Rollen zugeordnet werden sollen, bei der Zuordnung von Benutzern und Gruppen zu Rollen bereits berücksichtigt wurden und Bestandteil dieser Rolle sind. Diese Prüfung ist erforderlich, um sicherzustellen, dass ein Benutzer einer RunAs-Rolle nur hinzugefügt werden kann, wenn er bei der Zuordnung von Benutzern und Gruppen zu Rollen direkt oder indirekt einer Rolle zugeordnet wurde (die Zuordnung erfolgt über eine Gruppe, die diesen Benutzer enthält). Da eine Gruppe, zu der dieser Benutzer gehört, bei der Zuordnung von Benutzern und Gruppen zu Rollen möglicherweise berücksichtigt wurde, wird diese Methode aufgerufen, um zu prüfen, ob Gruppen, zu denen dieser Benutzer gehört, dieser Rolle tatsächlich zugeordnet wurden.
- Rufen Sie die Benutzer aus einer bestimmten Gruppe mit "getUsersForGroup(String,int)" ab.
Die Methode ruft Benutzer von der angegebenen Gruppe ab. Die Anzahl der zurückgegebenen Benutzer wird vom Parameter "limit" begrenzt. Der Grenzwert null (0) gibt an, dass alle Benutzer dieser Gruppe zurückgegeben werden sollen. Bei einigen großen Gruppen kann das zu Problemen führen. Diese Methode wird nicht direkt von der Sicherheitskomponente von WebSphere Application Server aufgerufen. Sie kann jedoch von anderen Komponenten aufgerufen werden. Wenn Sie in seltenen Fällen mit einer Benutzerregistry arbeiten, bei der sich das Abrufen aller Benutzer aus einer Ihrer Gruppen nicht empfiehlt, können Sie die Ausnahme NotImplementedException für diese bestimmte Gruppe auslösen. Stellen Sie sicher, dass die Staff-Zuordnungen nicht mit diesen Gruppen modelliert werden, wenn der Process Choreographer installiert ist. Sollten keine Bedenken hinsichtlich der Rückgabe der Benutzer aus Gruppen in der Benutzerregistry bestehen, wird empfohlen, die Ausnahme NotImplemented beim Implementieren dieser Methode nicht auszulösen.public Result getUsersForGroup(String groupSecurityName, int limit) throws NotImplementedException, EntryNotFoundException, CustomRegistryException, RemoteException;
Der Rückgabeparameter ist ein Objekt des Typs com.ibm.websphere.security.Result. Das Objekt enthält die Attribute java.util.List und java.lang.boolean. Die Liste enthält alle zurückgegebenen Benutzer, und der Boolesche Wert zeigt an, ob in der Benutzerregistry weitere Benutzer für das Suchmuster vorhanden sind. Das Boolesche Flag zeigt dem Client an, ob in der Benutzerregistry Benutzer verfügbar sind.
In dem Beispiel ruft diese Methode einen Benutzer mehr als angefordert für die Gruppe ab, sofern der Parameter "limit" nicht auf 0 (null) gesetzt ist. Kann die Methode einen weiteren Benutzer ermitteln, setzt sie das Boolesche Flag auf true.
In WebSphere Application Server Version 4 war diese Methode "getUsers" für das Produkt verbindlich. In WebSphere Application Server Version 5.x und höher kann diese Methode die Ausnahme NotImplementedException auslösen, wenn sich der Abruf der angeforderten Gruppe von Benutzern als nicht sinnvoll erweist. Diese Ausnahme sollte jedoch nur in seltenen Fällen ausgelöst werden, weil sie sich auf andere Komponenten auswirken kann. In Version 4 akzeptiert diese Methode als Parameter nur das Suchmuster und gibt eine Liste zurück. In Version 5 unterstützt die Methode den Parameter "limit". Im Idealfall wird die Implementierung dahingehend geändert, dass sie den Grenzwert übernimmt und die Anzahl der zurückgegebenen Benutzer begrenzt. Die Rückgabe erfolgt jetzt in Form eines Ergebnisobjekts, das eine Liste und ein Flag enthält. Das Flag zeigt an, ob weitere Einträge vorhanden sind. Wenn die Liste zurückgegeben wird, können Sie mit der Methode "Result.setList(List)" die Liste im Result-Objekt festlegen. Falls der Parameter "limit" mehr Einträge als gefordert enthält, setzen Sie das Boolesche Attribut im Ergebnisobjekt auf true. Verwenden Sie hierfür die Methode "Result.setHasMore". Die Standardeinstellung für das Boolesche Attribut im Ergebnisobjekt ist false.
- Implementieren Sie die Methode "createCredential(String)". Achtung: Die ersten beiden Zeilen des folgenden Codebeispiels sind eigentlich eine fortlaufende Zeile.
In diesem Release von WebSphere Application Server wird die Methode createCredential nicht aufgerufen. Sie können null zurückgeben. In dem Beispiel wird null zurückgegeben.public com.ibm.websphere.security.cred.WSCredential createCredential(String userSecurityName) throws NotImplementedException, EntryNotFoundException, CustomRegistryException, RemoteException;
Nächste Schritte


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_users
Dateiname:tsec_users.html