Meilleures pratiques en matière d'examen Java

Lorsque vous examinez des projets Java dans AppScan sur Cloud, si vous utilisez Maven ou Gradle pour vos générations (sachant que la plupart des applications Java utilisent l'un de ces outils), vous devez utiliser le plug-in ASoC Maven ou Gradle correspondant.

Si vous n'utilisez aucun de ces outils, nous vous recommandons d'utiliser le fichier appscan-config.xml pour limiter l'examen à votre code, et de fournir un chemin classpath afin que toutes les dépendances soient trouvées.

Les principales étapes de configuration d'un examen limité à l'aide du fichier appscan-config.xml sont les suivantes :

  1. Procédez à une exécution simple du processus IRGen et examinez les résultats pour identifier les packages à inclure et à exclure.
  2. Configurez le fichier appscan-config.xml de manière à inclure et exclure les packages en conséquence.
  3. Procédez à une nouvelle exécution simple pour vérifier que les packages à examiner sont les bons.
  4. Si tout est bon, exécutez appscan prepare pour générer le fichier IRX.

Procéder à une exécution simple et examiner les résultats

Une exécution simple permet d'examiner les fichiers à inclure dans l'examen et renvoie deux informations :
  • Les packages à inclure dans l'examen.
  • Les noms des packages pour les dépendances introuvables.
Pour procéder à une exécution simple, exécutez appscan prepare -dr sur le répertoire cible. Exemple :
  • Sous Windows :
    appscan.bat prepare -dr
  • Sous Linux :
    appscan.sh prepare -dr
Exemple de sortie :
Validating classes...
100%
Validation complete.
__ 

The following packages/namespaces will be analyzed:
                com.ibm.security
__ 

The following problems were found:
                Missing required reference com.ibm.security.appscan.*
                Missing required reference javax.servlet.*
                Missing required reference javax.servlet.http.*
                Missing required reference javax.ws.rs.*
                Missing required reference javax.ws.rs.core.*
                Missing required reference org.apache.commons.codec.binary.*
                Missing required reference org.apache.commons.lang.*
                Missing required reference org.apache.wink.json4j.*
Examinez la liste des packages à analyser lors de l'examen pour vous assurer que seul le code souhaité sera analysé.

Configurer le fichier appscan-config.xml

Après avoir procédé à une exécution simple et évalué les résultats, configurez le fichier appscan-config.xml :

  1. S'il existe des noms de packages qui ne doivent pas être examinés (par exemple, des dépendances tierces ou des dépendances internes provenant d'autres équipes), deux méthodes permettent de limiter l'examen au code souhaité :
    • Dans le fichier appscan-config.xml, spécifiez l'attribut package_includes pour limiter l'examen aux seuls packages à analyser. La valeur est une liste délimitée par des points-virgules d'un ou plusieurs noms de packages.
      Exemple :
      package_includes="com.hcl.appscan.client;com.hcl.appscan.server"
    • Dans le fichier appscan-config.xml, utilisez des balises <Exclude> pour exclure des fichiers et/ou répertoires tiers. Le contenu de la balise <Exclude> est un modèle, et le caractère * peut être utilisé comme caractère générique.
      Par exemple,
      <Exclude>myDependency-.jar</Exclude>
      Remarque : L'une ou l'autre de ces approches, ou les deux, peuvent être utilisées.
  2. Après avoir spécifié la portée de l'examen, passez en revue la liste des packages manquants et identifiez les fichiers .jar qui contiennent ces packages. Utilisez l'attribut additional_classpath dans le fichier appscan-config.xml pour spécifier l'emplacement de chaque fichier .jar manquant. La valeur de l'attribut additional_classpath est une liste délimitée du chemin d'accès à chaque fichier .jar. Sous Linux/Mac, le délimiteur est le caractère deux-points (: ) et sous Windows, il s'agit du point-virgule (;).
    Exemple :
    additional_classpath=”C:\myDependencies\lib\xyz.jar;C:\myDependencies\lib\sample.jar”/
L'exemple suivant de fichier appscan-config.xml inclut la modification mentionnée ci-dessus.
Remarque : Le fichier appscan-config.xml doit être placé dans le répertoire où la commande appscan prepare sera exécutée. Tous les chemins relatifs contenus dans le fichier appscan-config.xml doivent être relatifs à ce répertoire. Pour en savoir plus sur le fichier appscan-config.xml, cliquez ici.
<Configuration>
 <Targets>
 <Target path="./myApp">
 <CustomBuildInfo package_includes=”com.hcl.appscan.client;com.hcl.appscan.server” additional_classpath=”C:\myDependencies\lib\xyz.jar;C:\myDependencies\lib\sample.jar”/>
 <Exclude>myDependency-.jar</Exclude>*
 <Exclude>abc.jar</Exclude>
 </Target>
 </Targets>
</Configuration>

Après avoir enregistré le fichier appscan-config.xml à l'emplacement approprié, exécutez à nouveau appscan prepare -dr pour vérifier que la liste des packages à analyser est conforme à vos attentes et qu'il ne manque aucune référence. Si tout semble correct, exécutez la commande appscan prepare pour générer le fichier IRX.