Servletsicherheitsmethoden
Die Servletsicherheitsmethoden "authenticate", "login", "logout", "getRemoteUser", "isUserInRole" und "getAuthType" sind Methoden der Schnittstelle "javax.servlet.http.HttpServletRequest".
authenticate
Die Methode "authenticate" authentifiziert einen Benutzer mittels des Anmeldemechanismus des Containers von WebSphere Application Server, der für den Servletkontext konfiguriert ist.
boolean authenticate(HttpServletResponse response))
- response
- Dies ist die HTTP-Servletantwort ("HttpServletResponse"), die der HTTP-Servletanforderung ("HttpServletRequest") zugeordnet ist.
Die Methode "authenticate" gibt true zurück, wenn die Authentifizierung hergestellt wurde bzw. die Authentifizierung erfolgreich war.
Die Methode "authenticate" gibt false zurück, wenn die Authentifizierung unvollständig war und der zugrundeliegende Anmeldemechanismus als Antwort darauf die Nachricht und den HTTP-Statuscode zur Rückgabe an den Benutzer übergeben hat.
Tritt beim Schreiben der Antwort ein Fehler auf, wird die Ausnahme "java.io.IOException" ausgelöst.
Eine Servletausnahme ("ServletException") wird ausgelöst, wenn die Authentifizierung gescheitert ist. Für die Fehlerbehandlung ist der Caller (Aufrufende) zuständig (z. B. eine Nachricht darüber, dass der zugrundeliegende Anmeldemechanismus die Authentifizierung nicht hergestellt hat, und der HTTP-Statuscode, der an den Benutzer zurückgegeben werden soll).

- WebSphere Application Server gibt an den Client den Code HTTP 401 zurück.
- Die Methode ist abhängig vom Anmeldemechanismus des Containers von WebSphere Application Server, der für den Servletkontext konfiguriert ist. Wenn für dieses Servlet beispielsweise eine Formularanmeldung definiert ist, werden ein Benutzername und ein Kennwort angefordert. Der Client sendet die Benutzer-ID und das Kennwort zur Authentifizierung an WebSphere Application Server.
Boolean authResultTrue = req.authenticate(response);
if (!authResultTrue) {
return;
} else {
// Verwenden Sie das neue Aufruf-Subjekt, um andere Services aufzurufen.
}
login
Die Methode "login" authentifiziert einen Benutzer mit einer Benutzer-ID und einem Kennwort bei WebSphere Application Server. Wenn die Authentifizierung erfolgreich ist, werden ein Benutzersubjekt für den Thread und LDAP-Cookies (Lightweight Third Party Authentication) erstellt (wenn SSO (Single Sign-on) aktiv ist).
login(java.lang.String username, java.lang.String password)
- username
- Die Zeichenfolge mit der Anmelde-ID des Benutzers.
- password
- Das Kennwort des Benutzers.
Eine Servletausnahme ("ServletException") wird ausgelöst, wenn der konfigurierte Anmeldemechanismus die Authentifizierung mit Benutzernamen und Kennwort nicht unterstützt, wenn (vor dem Aufruf von "login") bereits eine Identität authentifiziert wurde oder wenn die Prüfung von Benutzernamen und Kennwort scheitert.
Weitere Informationen zum Ändern von angepassten Sicherheitseinstellungen finden Sie im Artikel "Vorhandene angepasste Eigenschaft in einer globalen Sicherheitskonfiguration oder in einer Sicherheitsdomänenkonfiguration ändern".

Weil die Methoden "authenticate" und "login" das neue Subjekt als Aufruf-Subjekt festlegen, werden das im Implementierungsdeskriptor vom Run-as-Attribut definierte RunAs-Subjekt, die Sicherheitsannotation und die dynamische Annotation ignoriert.
gotchalogout
- Löscht die LTPA-Cookies, wenn SSO aktiviert ist.
- Macht die HTTP-Sitzung ungültig.
- Entfernt den Benutzer aus dem Authentifizierungscache.
- Entfernt das Benutzersubjekt aus dem Thread.
- Löscht das Caller-Subjekt und das Aufruf-Subjekt.
- Setzt den Authentifizierungstyp auf null.
Nach der Abmeldung ist für den Zugriff auf eine geschützte Webressource eine erneute Authentifizierung erforderlich und die Methoden "getUserPrincipal", "getRemoteUser" und "getAuthType" geben null zurück.
logout()
Wenn die Abmeldung scheitert, wird eine Servletausnahme ("ServletException") ausgelöst.
Prüfereignistypen für die Methoden "authenticate", "login" und "logout"
Zum Prüfen der Methoden "authenticate", "login" und "logout" müssen einige Dateien für Prüfereignistypen erstellt oder erweitert werden. Diese Ereignistypen sind nicht Teil der Dateien für Standardereignistypen.
Methode | Name des Prüfereignisses | Prüfergebnis für das Ereignis |
---|---|---|
authenticate/login | SECURITY_AUTHN | SUCCESS und/oder FAILURE |
logout | SECURITY_AUTHN_TERMINATE | SUCCESS |
logout | SECURITY_AUTHN_TERMINATE | FAILURE |
isUserInRole
(String Rollenname): Gibt true zurück, wenn der ferne Benutzer Zugang zur angegebenen Sicherheitsrolle hat. Wenn der ferne Benutzer keinen Zugang zur angegebenen Rolle hat oder kein Benutzer authentifiziert wurde, wird false zurückgegeben.
getRemoteUser
Die Methode "getRemoteUser" gibt die Anmeldung des Benutzers zurück, der die Anforderung stellt, falls der Benutzer authentifiziert wurde. Falls der Benutzer nicht authentifiziert wurde, gibt die Methode "getRemoteUser" null zurück.
getAuthType
Die Methode "getAuthType" gibt den Namen des Authentifizierungsschemas zurück, das verwendet wird, um das Servlet zu schützen. Wenn das Servlet nicht geschützt ist, gibt die Methode "getAuthType" null zurück.
- FORM
- für formularbasierte Authentifizierung
- BASIC
- für Basisauthentifizierung
- CLIENT_CERT
- für Clientzertifikatsauthentifizierung
- Wenn die Sicherheit aktiviert und ein Servlet geschützt ist, gibt die Methode "getRemoteUser" die Anmeldung zurück und die Methode "getAuthType" gibt das konfigurierte Authentifizierungsschema zurück.
- Wenn die Anwendungssicherheit nicht aktiviert ist, geben beide Methoden null zurück.