Unterstützung von Java Servlet 3.0 für die Sicherheit
Dieses Release von WebSphere Application Server unterstützt alle Sicherheitsaktualisierungen, die in der Spezifikation Java™ Servlet 3.0 definiert sind.
Dieses Release von WebSphere Application Server unterstützt alle Sicherheitsaktualisierungen gemäß Definition in der Spezifikation Java Servlet 3.0, einschließlich der neuen Servletsicherheitsannotationen, Verwendung neuer programmgesteuerter Sicherheits-APIs und dynamischer Aktualisierung der Servletsicherheitskonfiguration.
Eine bedeutende Erweiterung ist die neue Annotationsunterstützung für Servlets. Ein Entwickler kann die Integritätsbedingungen für die Sicherheit alternativ zur Deklaration in der Datei "web.xml", die vor Java Servlet Version 3.0 verwendet wurde, mithilfe von Annotationen deklarieren. Die Datei web.xml funktioiert weiterhin und überscheibt alle Konflikte, die mit Annotationen definiert wurden.
- Unterstützung für die Annotation "@ServletSecurity"
- Unterstützung für die dynamische Aktualisierung der Annotationen "@RunAs", "@declareRoles" und "@ServletSecurity" für die Servletsicherheit.
- Unterstützung der Methoden "authenticate", "login" und "logout" für die Servletsicherheit
- Die neue Eigenschaft "com.ibm.websphere.security.displayRealm" gibt an, ob im Anmeldefenster für die HTTP-Basisauthentifizierung der Realmname angezeigt wird, der nicht in der Datei web.xml der Anwendung definiert ist.
Im Folgenden sind die Aktualisierungen für Java Servlet 3.0 in Bezug auf die Sicherheit ausführlicher beschrieben:
Unterstützung für die Annotation "@ServletSecurity":
Wenn eine Anwendung implementiert wird, sucht die Implementierung "ServletSecurity MergeAction" alle Servlets mit der Annotation "ServletSecurity". Für jedes annotierte Servlet sucht die Implementierung das Servlet, das der angegebenen Klkassenbasis in der Annotation "WebServlet" zugeordnet ist. Wenn RolesAllowed nicht in der Annotation "ServletSecurity" im Implementierungsdeskriptor gefunden wird, wird ein Attribut "role-name" für die Rolle im Implementierungsdeskriptor erstellt.
Wenn eine Anwendung gestartet wird, untersucht der Web-Container alle Servlets mit den Annotationen "RunAs", "declareRoles" und "ServletSecurity" und setzt diese Annotationen in der Methode "setServletSecurity()" der Annotation "ServletRegistration". Der Web-Container weist die Sicherheitskomponente an, alle Annotationen "ServletRegistration" mit URL-Mustern und Sicherheitsvorgaben zu untersuchen. Daraufhin stellt die Sicherheitskomponente fest, ob ein URL-Muster im Implementierungsdeskriptor definiert ist. Ist kein URL-Muster im Implementierungsdeskriptor definiert, werden die Sicherheitsvorgaben und die RunAs-Rolle im URL-Muster erstellt und dann verwendet. Wenn bereits eine exakte Übereinstimmung im Implementierungsdeskriptor definiert ist, werden die Sicherheitsvorgaben und die RunAs-Rolle im URL-Muster des Implementierungsdeskriptors anstelle der Annotationsdaten verwendet.
Weitere Informationen finden Sie im Artikel "Sicherheitsannotationen".
Unterstützung für die dynamische Aktualisierung der Annotationen "@RunAs", "@declareRoles" und "@ServletSecurity" für die Servletsicherheit.
Wenn eine Anwendung gestartet wird, untersucht der Web-Container alle Servlets mit den Annotationen "RunAs", "declareRoles" und "ServletSecurity" und setzt diese Annotationen in der Methode "setServletSecurity()" der Annotation "ServletRegistration". Der Web-Container weist die Sicherheitskomponente an, alle Annotationen "ServletRegistration" mit URL-Mustern und Sicherheitsvorgaben zu untersuchen. Daraufhin stellt die Sicherheitskomponente fest, ob ein URL-Muster im Implementierungsdeskriptor definiert ist. Wenn bereits eine exakte Übereinstimmung im Implementierungsdeskriptor definiert ist, werden die Sicherheitsvorgaben und die RunAs-Rolle im URL-Muster des Implementierungsdeskriptors anstelle der dynamischen Daten verwendet.
Weitere Informationen finden Sie im Artikel "Dynamische Annotationen für die Servletsicherheit".
Unterstützung der Methoden "authenticate", "login" und "logout" für die Servletsicherheit
Die Methode "authenticate" authentifiziert einen Benutzer mittels des Anmeldemechanismus des Containers von WebSphere Application Server, der für den Servlet-Kontext konfiguriert ist.
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).
Die Methode "logout" meldet den Benutzer von WebSphere Application Server ab und macht die HTTP-Sitzung ungültig.
Weitere Informationen finden Sie im Artikel zu den Methoden für die Servletsicherheit.
Die neue Eigenschaft com.ibm.websphere.security.displayRealm gibt an, ob im Anmeldefenster für die HTTP-Basisauthentifizierung der Realmname angezeigt wird, der in der Datei web.xml der Anwendung definiert ist:
- Wenn die Eigenschaft auf false (Standardeinstellung) gesetzt ist, wird als WebSphere-Realmname der Standardrealm angezeigt.
- Wenn die Eigenschaft auf true gesetzt ist, wird als WebSphere-Realmname der Realmname der Benutzerregistry für das LTPA-Authentifizierungsverfahren bzw. der Kerberos-Realmname für das Kerberos-Authentifizierungsverfahren angezeigt.
Weitere Informationen finden Sie im Artikel zu den angepassten Sicherheitseigenschaften.