Les Realms permettent de stocker les mots de passe de deux manières. Soit en clair, soit cryptés. Si l'on souhaite crypter un mot de passe, il faut utiliser un algorithme reconnu par la classe
"java.security.MessageDigest", à savoir SHA, MD2 ou le célèbre MD5. La méthode d'authentification doit alors être DIGEST. Le Realm utilisé doit contenir le nom de l'algorithme dans son attribut digest. Et le mot de passe doit être stocké crypté (selon le Realms, il est stocké dans un fichier, une base de données...).
Pour crypter un mot de passe, deux méthode existent.
La première consiste à utiliser la classe "org.apache.catalina.realm.RealmBase" de Tomcat, qui contient une méthode main(), et est à ce titre exécutable. Elle affiche le mot de passe crypté sur la sortie standard, si on l'exécute ainsi :
java org.apache.catalina.realm.RealmBase -a <nom_algorithme> <mot_de_passe_a_crypter>
La seconde méthode est d'appeler, depuis une application, la méthode statique :
org.apache.catalina.realm.RealmBase.Digest(String motDePasseACrypter, String nomAlgorithme);
Ces deux méthodes requièrent que le fichier TOMCAT_HOME/server/lib/catalina.jar soit dans votre CLASSPATH au moment de l'exécution.
|