JAX-WS-basierte Web-Service-Serveranwendungen, die Sicherheitstoken abrufen

Bei einer Serveranwendung tritt die Anwendung als Anforderungskonsument auf, und der Antwortgenerator wird im Java-EE-Container implementiert und ausgeführt. Die Konsumentenkomponente für Web Services Security speichert die empfangenen Sicherheitstoken im JAAS-Subjekt (Java Authentication and Authorization Service) des aktuellen Thread. Sie können die Sicherheitstoken aus dem JAAS-Subjekt abrufen, das als lokaler Thread im Container verwaltet wird.

Informationen zu diesem Vorgang

Dieser Information gelten nur für Java™ API for XML-based Web Services (JAX-WS).

Die Sicherheitshandler sind für die Weitergabe von Sicherheitstoken verantwortlich. Diese Sicherheitstoken werden in den SOAP-Sicherheitsheader eingebunden und an nachgeschaltete Server übergeben. Die Sicherheitstoken sind in den Implementierungsklassen für die Schnittstelle "com.ibm.wsspi.wssecurity.auth.token.Token" gekapselt. Sie können die Daten für das Sicherheitstoken von einer Serveranwendung oder einer Clientanwendung anfordern.

Führen Sie die folgenden Schritte aus, um die Daten für ein Sicherheitstoken von einer Serveranwendung anzufordern:

Vorgehensweise

  1. Fordern Sie das JAAS-Subject-Objekt des aktuellen Threads über die API "WSSubject" an. Wenn Sie in der Anzeige "Globale Sicherheit" der Administrationskonsole die Java-2-Sicherheit aktivieren, wird der Zugriff auf das JAAS-Subjekt verweigert, wenn der Anwendungscode nicht die Berechtigung javax.security.auth.AuthPermission("wssecurity.getCallerSubject") hat. Das folgende Codebeispiel zeigt, wie Sie das JAAS-Subjekt anfordern:
    javax.security.auth.Subject subject;
    
    try  {    
    subject = com.ibm.websphere.security.auth.WSSubject.getCallerSubject();
    } catch (com.ibm.websphere.security.WSSecurityException e) {
      …
    }
  2. Fordern Sie die privaten Berechtigungsnachweise aus dem Subjekt an. Nähere Informationen hierzu finden Sie in der Beschreibung der API-Klasse com.ibm.websphere.security.auth.WSSubject im Information Center. Zum Anzeigen dieser Informationen im Information Center klicken Sie auf Referenz > Entwickler > API-Dokumentation > Anwendungsprogrammierschnittstellen. Klicken Sie unter "Anwendungsprogrammierschnittstellen" auf com.ibm.websphere.security.auth > WSSubject.
    Achtung: Wenn die Java-2-Sicherheit aktiviert ist, müssen Sie unter Umständen die Klasse AccessController verwenden, um einen Sicherheitsverstoß zu vermeiden, der durch die Bearbeitung der Sicherheitsobjekte im Java-EE-Container verursacht wird.
    Das folgende Codebeispiel zeigt, wie Sie die Klasse AccessController setzen und die privaten Berechtigungsnachweise anfordern:
    Set s = (Set) AccessController.doPrivileged(new PrivilegedAction() {
       public Object run() {
       return subj.getPrivateCredentials();
       }
          });
  3. Suchen Sie die gewünschte Tokenklasse in den privaten Berechtigungsnachweisen. Sie können die Tokenklasse mit der Schnittstelle "java.util.Iterator" suchen. Das folgende Beispiel zeigt, wie Sie ein UsernameToken mit eine bestimmten Token-ID aus dem Sicherheitsheader anfordern. Sie können für den Abruf von Sicherheitstoken auch andere Methodenaufrufe verwenden. Nähere Informationen hierzu finden Sie in den API-Dokumenten für die Schnittstelle "com.ibm.wsspi.wssecurity.auth.token.Token" und angepasste Tokenklassen.
    com.ibm.wsspi.wssecurity.auth.token.UsernameToken unt;
    Iterator it = s.iterator();
    while (it.hasNext()) {
      Object obj = it.next();
      if (obj != null &&
    obj instanceOf com.ibm.wsspi.wssecurity.auth.token.UsernameToken) {
        unt =(com.ibm.wsspi.wssecurity.auth.token.UsernameToken) obj;
    if (unt.getId().equals(“…”)) break;
    else continue;
      }
    }

Ergebnisse

Nach der Ausführung dieser Schritte haben Sie die Sicherheitstoken aus dem JAAS-Subject-Objekt in einer Serveranwendung abgerufen.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_retrievetokensrvr_jaxws
Dateiname:twbs_retrievetokensrvr_jaxws.html