Actions communes exécutées par le gestionnaire

Créer un point d'entrée du service Web

Bon nombre de cadres disposent de leurs propres points d'entrée dans une application. Un exemple classique consiste à exposer des services Web qui sont identifiés dans un fichier de configuration ou dans des annotations dans le code. Après recherche de points d'entrée désignés dans les fichiers de configuration ou directement dans le bytecode de l'application, la méthode F4FAction.addTaintedCallback peut être utilisée pour créer un point d'entrée de données entachées dans la méthode appropriée.

Observez l'exemple : dans EJB 2, les points d'entrée du service Web sont déclarés en définissant des noeuds finaux (endpoints) dans le fichier de configuration de l'application (ejb-jar.xml). handleApp effectue alors une boucle via les beans déclarés dans ejb-jar.xml et chaque fois qu'une classe de noeud final est définie, il obtient la liste des noms de méthode. Il déclare ensuite leurs implémentations en tant que points d'entrée de service Web à l'aide de la méthode addTaintedCallback.

Remplacer une méthode

Les cadres modernes utilisent fréquemment des fonctions virtuelles et une abstraction pour associer plus légèrement des composants professionnels. Bien qu'il puisse s'agir d'une amélioration à apporter au processus de développement, il génère des difficultés pour l'analyse statique lorsque la connexion entre la fonction virtuelle et son implémentation est gérée dans un fichier de configuration ou via des annotations dans le code. F4FAction.replaceCalls permet à un gestionnaire de désigner ces connexions.

Observez l'exemple : dans EJB 2, chaque bean possède un ensemble d'interfaces (locales et distantes) qui déclarent la façon dont les autres beans interagissent avec lui. Cela signifie que, chaque fois qu'une interface de bean class.method est appelée, elle est remplacée par le framework associé à la méthode ImplementationClass.method réelle.

En commençant à la ligne 62, notre gestionnaire pris à titre d'exemple effectue une boucle via chaque bean, prend ses interfaces locales et distantes et les remplace par leurs implémentations réelles.

Consignation

Un gestionnaire peut utiliser la classe com.ibm.wala.andromeda.util.logging.TaintLogger pour consigner des messages d'information pendant l'exécution et pour provoquer l'affichage de messages d'erreur dans l'interface utilisateur AppScan® Source. La classe TaintLogger utilise la bibliothèque log4j. Pour consigner un message, obtenez d'abord un objet Logger en appelant TaintLogger.i().getLogger(). Appelez ensuite les méthodes de consignation sur l'objet Logger (par exemple, Logger.warn) afin de consigner les messages souhaités. Les messages de journal apparaissent dans <data_dir>\logs\StaticAnalyzer_Errors.log (où <data_dir> est l’emplacement de vos données de programme AppScan Source, comme décrit dans Emplacements des fichiers de données utilisateur et des fichiers d'installation). Si vous utilisez Logger.error ou Logger.fatal pour consigner un message, le message d'erreur s'affichera également dans la vue Console de l'interface utilisateur AppScan Source.