RunAs-Subjekt im Thread für JAAS überschreiben

Zur Erweiterung der von den JAAS-APIs (Java Authentication and Authorization Service) bereitgestellten Funktionen können Sie das RunAs-Subjekt oder Aufrufsubjekt mit einem anderen gültigen Eintrag setzen, der für abgehende Anforderungen für diesen aktiven Thread verwendet wird.

Vorbereitende Schritte

Sie benötigen zum Ausführen dieser APIs die folgenden Java-2-Sicherheitsberechtigungen:
  • permission javax.security.auth.AuthPermission "wssecurity.getRunAsSubject"
  • permission javax.security.auth.AuthPermission "wssecurity.getCallerSubject"
  • permission javax.security.auth.AuthPermission "wssecurity.setRunAsSubject"

Informationen zu diesem Vorgang

Diese Erweiterung gibt Ihnen die Flexibilität, das Subject allen fernen Aufrufen in diesem Thread zuzuordnen, wenn Sie eine Methode "WSSubject.doAs" verwenden, um das Subject einer fernen Aktion zuzuordnen.

[z/OS]Ein Anwendungsentwickler kann mit der Methode "WSSubject.doAs" ein JAAS-Subjekt definieren, das von einem JAAS-Anmeldemodul als aktive Sicherheits-ID authentifiziert und zur Laufzeit von WebSphere Application Server für die Ausführung einer bestimmten Aktion verwendet wird. WSSubject.doAs synchronisiert die Threadidentität nur beim Aufruf in einer Komponente, die für die Synchronisation mit dem Thread (sync-to-thread) konfiguriert ist. Bei Verwendung der Option "Synch to OS Thread Allowed" für Anwendungen wird diese ID im Betriebssystemthread für den Geltungsbereich dieser Aktion definiert.

Vorgehensweise

  1. Definieren Sie ein neues RunAs-Subjekt für den Thread, und überschreiben Sie das Subjekt, das deklarativ definiert wurde.
    com.ibm.websphere.security.auth.WSSubject.setRunAsSubject(caller_subject);  	 	 
  2. Führen Sie einige Fernaufrufe durch.
  3. Stellen Sie das vorherige RunAs-Subjekt wieder her.
    com.ibm.websphere.security.auth.WSSubject.setRunAsSubject(runas_subject);

Beispiel

try { javax.security.auth.Subject runas_subject, caller_subject; runas_subject = com.ibm.websphere.security.auth.WSSubject.getRunAsSubject(); caller_subject = com.ibm.websphere.security.auth.WSSubject.getCallerSubject();   // neues RunAs-Subjekt für den Thread festlegen und das eine per Deklaration definierte überschreiben com.ibm.websphere.security.auth.WSSubject.setRunAsSubject(caller_subject);   // ferne Aufrufe absetzen   // in das vorherige runAsSubject zurückschreiben com.ibm.websphere.security.auth.WSSubject.setRunAsSubject(runas_subject); } catch (WSSecurityException e) { // Fehler protokollieren } catch (Exception e) { // Fehler protokollieren }


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=tsec_override
Dateiname:tsec_override.html