Existe-t-il de la documentation plus complète que l'API sur la classe com.jalios.jcms.tools.JspChecker ?

Jean-François Franck · le 10/03/14 à 18:17

Cette classe a l'air d'effectuer des tests de sécurité sur les JSP développées, c'est intéressant mais il n'y a aucune information sur le site de la communauté ...

7 pts
Olivier Jaquemet · le 10/03/14 à 18:34

Bonjour,

Cette classe est utilisée en internet chez Jalios lors des tests unitaire de JCMS et des modules pour garantir le respect de certaines normes de codage et valider la qualité de JCMS, sur certain point qui pouvaient être automatisés, notamment (dépend de votre version de JCMS) : 

  • pas de boucle foreach imbriquée sans redéfinition correct des variables
  • absence de syntaxe quote in quote invalide dans Tomcat (ancienne version) : <foo bar='<%= 'hello' %>' />
  • pas de balise <a /> fermante directement (avec uniquement un attribut name), doit être sous la forme <a name=""></a> 
  • pas de System.out
  • pas de méthodes suivantes (qui doivent être remplacées par les méthodes plus sur disponible dans doInitFunc)
    • request.getParameter()
    • request.getParameterValues()
    • request.getParameterMap()
  • Pas d'image sans attribut alt ou avec des attributs dépréciés

Vous pouvez l'invoquer en ligne de commande pour vérifier un dossier bien spécifique (après avoir exporté le classe path de JCMS dans votre ligne de commande, cf jsp admin/classpath.jsp) : 

java com.jalios.jcms.tools.JspChecker {directory}

Ou depuis un test unitaire : 

 public void testJsp() throws IOException {
int issueCount = JspChecker.checkAll(new File(channel.getWebappPath()));
assertTrue("JSP issue: " + issueCount + " issue(s). See logs for details.", issueCount == 0);
}
4 pts