vendredi 7 septembre 2007

créer un connecteur CAS

L'objectif ici est de permettre le développement d'application et d'extention autour de CAS, à l'aide
d'eclipse europa. CAS est un serveur d'authentification SSO développé à l'origine par l'université de Yale.

La première étape consiste à importer CAS dans eclipse. Pour cela, on va utiliser l'import du fichier war d'eclipse
pour créer un nouveau projet. Eclipse propose en cours d'import de laisser les fichiers jar du projet dans le
répertoire lib ou de les convertir en projet. Il faut les laisser en tant que lib.

Puisque il s'agit d'un fichier war, eclipse va l'importer en tant que projet web dynamique.

à partir de là, pour créer un nouveau connecteur il faut coder une classe java implémentant l'interface AuthenticationHandler. Cette implémentation est simple,
puisqu'il s'agit en gros de valider un couple login/mot de passe.

un exemple de code des deux méthodes peut être le suivant


public boolean authenticate(Credentials credentials)
throws AuthenticationException {

UsernamePasswordCredentials upCredentials = (UsernamePasswordCredentials) credentials;
String username = upCredentials.getUsername();
String password = upCredentials.getPassword();
......validation du login/mot de passe
}

public boolean supports(Credentials credentials) {
return credentials instanceof UsernamePasswordCredentials;
}



L'opération suivante consiste à déclarer le connecteur dans CAS. Ceci se fait dans le fichier deployerConfigContext.xml qui se trouve dans WEBINF. La lecture de ce fichier permet de facilement déclarer notre connecteur.