Implémentation d'un algorithme de sécurité personnalisé

Vous pouvez définir vos propres algorithmes de sécurité pour les profils de sécurité SOAP en implémentant des interfaces Java™ de sécurité personnalisées pouvant être utilisées dans l'éditeur de sécurité WSDL. A l'aide d'algorithmes de sécurité personnalisés, vous pouvez implémenter des algorithmes de sécurité propriétaires qui transforment l'élément XML avant d'envoyer et après avoir reçu le contenu du message.

Avant de commencer

L'interface de sécurité personnalisée et le fichier JAR dans lequel elle se trouve sont fournis avec le produit dans le dossier customsecuritydefinition du plug-in com.ibm.rational.ttt.common.models.core. Vous avez besoin de ces interfaces pour créer vos propres algorithmes. Si vous utilisez IBM® Rational Performance Tester ou IBM Rational Service Tester for SOA Quality, reportez-vous à la rubrique Extension de l'exécution d'un test avec du code personnalisé pour plus d'informations sur l'extension des capacités des tests à l'aide de code Java.

Procédure

  1. Dans le navigateur de test ou l'explorateur de projet, créez une nouvelle classe Java dans votre dossier de projet de test de service Web.
  2. Implémentez un algorithme de sécurité dans Java à l'aide de l'interface suivante :
    /**
    * ***************************************************************
    * IBM Confidential
    * 
    * (c) Copyright IBM Corporation. 2008. All Rights Reserved.
    * 
    * The source code for this program is not published or otherwise
    * divested of its trade secrets, irrespective of what has been
    * deposited with the U.S. Copyright Office.
    * *************************************************************** 
    * 
    */
    
    package com.ibm.rational.test.lt.models.wscore.datamodel.security.xmlsec;
    
    import java.util.Properties;
    import org.w3c.dom.Document;
    
    
    public interface ICustomSecurityAlgorithm {
    	
    	/**
    	 * The following methods can be used in both case:
    	 * Execution in the workbench and execution of the test.
    	 */
    	
    	
    	/**
    	 * Called to process de Document that is sent over a transport.
    	 * @param subject
    	 */
    	void process(Document subject);
    	/**
    	 * Called to un process a document that is received from a server.
    	 * @param subject
    	 */
    	void unProcess(Document subject);
    	
    	/**
    	 * Properties defined in the UI of the CustomSecurityAlgorithm.
    	 * @param map
    	 */
    	void setProperties(Properties map);
    	
    	/**
    	 * The following methods can only be used in terms of cast to test service interface,
    	 * or in terms of access to the previous XML  information, when the jar containing
    	 * the custom security algorithm is deployed in the performance test project. In
    	 * this case you cannot use the algorimth directly from the workbench.
    	 */
    	
    	/**
    	 * This object corresponds to the ITestExecutionService object.
    	 * This applies only to an algorithm that must link to the execution of the test.
    	 * If you plan to use this object you will need to deploy the jar containing the
    	 * implementation into your performance test project and not directly into the JRE.
    	 * 
    	 * In case of a need of the previous xml document received from the execution you can 
    	 * obtain the value using:
    	 * IDataArea area = ((ITestExecutionService)executionObject).findDataArea(IDataArea.VIRTUALUSER);
    	 *String previousXML = (String) area.get("PREVIOUS_XML"); //$NON-NLS-1$
    	 * 
    	 */
    	void setExecutionContext(Object executionObject);

    La méthode process modifie l'élément XML avant qu'il ne soit envoyé au serveur.

    La méthode unprocess modifie l'élément XML une fois qu'il a été reçu du serveur.

    La méthode setProperties extrait les propriétés définies dans l'éditeur de sécurité pour cette interface de sécurité personnalisée.

    La méthode setExecutionContext est appelée lors du test avec l'objet ITestExecutionServices qui correspond au message utilisant cette interface de sécurité personnalisée.

  3. L'interface de sécurité personnalisée peut être utilisée dans l'éditeur de sécurité WSDL pour les services Web ou dans les éléments d'appel XML dans la balise Sécurité XML locale.
    • Si vous testez un service Web de type WSDL, cliquez à l'aide du bouton droit de la souris sur le fichier WSDL dans le navigateur de test ou dans l'explorateur de projet pour ouvrir l'éditeur de sécurité WSDL, sélectionnez la page Algorithmes de sécurité puis sous Détails de la pile d'algorithmes de sécurité sélectionnée, cliquez sur Ajouter > Algorithme de sécurité personnalisé.
    • Si vous testez un appel XML, ouvrez l'élément d'appel XML dans l'éditeur de test, sélectionnez l'onglet Sécurité XML locale puis cliquez sur Ajouter > Algorithme de sécurité personnalisé
  4. Dans la sécurité personnalisée, cliquez sur Parcourir la classe pour sélectionner le nom de classe de l'algorithme de sécurité personnalisé, par exemple : ICustomSecurityAlgorithm.
  5. Entrez un nom d'algorithme pour l'algorithme de sécurité personnalisé.
  6. Dans la liste des propriétés, utilisez Ajouter, Supprimer, ou Editer pour indiquer les propriétés utilisées par la méthode setProperties dans votre algorithme de sécurité personnalisé.

Que faire ensuite

Après la sauvegarde de la configuration de sécurité ou de l'élément d'appel, la vue Données de protocole des services Web affiche les conséquences de l'algorithme de sécurité sur les données XML du service Web.

Retour d'informations