Développement d'applications client de services Web basés sur JAX-WS pour l'extraction des jetons de sécurité

Les gestionnaires de sécurité sont responsables de la propagation des jetons de sécurité. Ces jetons de sécurité sont imbriqués dans l'en-tête de sécurité SOAP et transmis aux serveurs en aval.

Pourquoi et quand exécuter cette tâche

Ces informations ne s'appliquent qu'aux services Web JAX-WS (Java™ API for XML-based Web Services).

Ils sont encapsulés dans les classes d'implémentation de l'interface com.ibm.wsspi.wssecurity.auth.token.Token. Vous pouvez extraire les données des jetons de sécurité à partir d'une application serveur ou d'une application client.

Dans le cas d'une application client, l'application sert de générateur de demandes et de destinataire des réponses, et est exécutée en tant qu'application client Java EE (Java Platform, Enterprise Edition). Le composant destinataire de la sécurité des Services Web stocke les jetons de sécurité qu'il reçoit dans l'une des propriétés de l'objet MessageContext pour l'appel de services Web en cours. Vous pouvez extraire un ensemble d'objets jeton via l'interface javax.xml.rpc.Stub de cet appel de services web. Vous devez connaître les jetons de sécurité à extraire ainsi que leurs ID de jeton au cas où plusieurs jetons de sécurité figurent dans l'en-tête de message SOAP. Effectuez les opérations ci-dessous pour extraire les données des jetons de sécurité à partir d'une application client.

Procédure

  1. Utilisez la chaîne de clé com.ibm.wsspi.wssecurity.token.tokenPropergation pour obtenir la table de hachage des jetons via une valeur de propriété de l'interface javax.xml.ws.Stub. L'exemple suivant illustre l'obtention de la table de hachage :
    java.util.Hashtable t;
    
    javax.xml.ws.Service serv = …;
    serv.addPort(...);
    javax.xml.ws.Dispatch<Object> dispatch = svc.createDispatch(...);
    
    Map<String, Object> requestContext = dispatch.getRequestContext();
    requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, ..);
    requestContext.put(BindingProvider.SOAPACTION_USE_PROPERTY, ..);
    requestContext.put(BindingProvider.SOAPACTION_URI_PROPERTY, ..);
    
    String response = dispatch.invoke(body.toString());
    
    Map<String, Object> responseContext = dispatch.getResponseContext();
    
    t = (Hashtable) responseContext.get( 
    com.ibm.wsspi.wssecurity.Constants.WSSECURITY_TOKEN_PROPERGATION);
  2. Recherchez les objets jeton cible dans la table de hachage. Chaque objet jeton de la table de hachage est associé à son ID de jeton sous forme de clé. Vous devez connaître les ID des jetons de sécurité à extraire. L'exemple suivant illustre l'extraction d'un jeton de nom d'utilisateur à partir de l'en-tête de sécurité en fonction d'une certaine valeur d'ID de jeton :
    com.ibm.wsspi.wssecurity.auth.token.UsernameToken unt;
    if (t != null) {
      unt = (com.ibm.wsspi.wssecuty.auth.token.UsernameToken)t.get(“…”);
    }

Résultats

Si ces opérations sont terminées, vous avez extrait les jetons de sécurité traités par le gestionnaire de sécurité des services Web dans une application client.

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_retrievetokencl_jaxws
Nom du fichier : twbs_retrievetokencl_jaxws.html