Extraction du sujet de l'appelant de l'unité d'exécution pour JAAS
Le sujet de l'appelant (ou "sujet reçu") contient les informations d'authentification utilisées dans l'appel pour cette requête. Ce sujet est renvoyé après émission de l'interface de programmation d'application WSSubject.getCallerSubject afin d'éviter d'y remplacer des objets existants. Le sujet est signalé comme étant en lecture seule. Cette interface permet d'accéder au justificatif WSCredential de sorte à pouvoir placer ou définir des données dans le hashmap au sein du justificatif.
Avant de commencer
Vous devez disposer des droits d'accès de la sécurité Java™ 2 suivants pour exécuter cette API : permission javax.security.auth.AuthPermission "wssecurity.getCallerSubject";.
Si vous utilisez le mécanisme d'authentification Kerberos, la règle KDC active la délégation Kerberos et le client dispose d'un ticket Kerberos pouvant être transféré, le sujet dispose des tickets Kerberos du client et des données d'identification déléguées GSS. Vous pouvez utiliser les API pour accéder aux tickets Kerberos et aux données d'identification déléguées GSS.
Pourquoi et quand exécuter cette tâche
La majorité des données présentes dans le sujet n'est pas propagée en aval à un autre serveur. Seul le jeton de justificatif présent dans le justificatif WSCredential est propagé en aval et un nouveau sujet de l'appelant est généré.
Procédure
Exemple
try { javax.security.auth.Subject caller_subject; com.ibm.websphere.security.cred.WSCredential caller_cred;
caller_subject = com.ibm.websphere.security.auth.WSSubject.getCallerSubject();
if (caller_subject != null) { caller_cred = caller_subject.getPublicCredentials
(com.ibm.websphere.security.cred.WSCredential.class).iterator().next();
String CALLERDATA = (String) caller_cred.get ("MYKEY");
System.out.println("Mes données du justificatif Caller sont : " + CALLERDATA); } }
catch (WSSecurityException e) { // log error } catch (Exception e) { // log error }