{panel:bgColor=#F8F7EF}
h1. Spécification filtres d'identification
\*\*
\\
Auteur : Raymond Bourges (Université de Rennes1) ([http://http://|http://http://])
{panel}
{toc:style=disc\|indent=20px\|minLevel=1}
h1. Introduction
\\
Ce document a pour but de spécifier le mode de fonctionnement, à base de filtre J2EE, de l'identification des serveurs Slide et Cocoon utilisés dans le cadre d'Injac.
h1. Principe de fonctionnement
\\
On utilise une cascade de 4 filtres. Le premier d'entre eux sert uniquement à l'aiguiller vers les trois autres filtres. Ces trois autres filtres gèrent les différents modes d'identification du serveur. A savoir : LDAP, TRUSTED ou CAS. Les filtres utilisent log4j pour les logs. Les filtres vont chercher leurs paramètres directement dans le fichier web.xml de l'application conformément à la norme sur les filtres J2EE.
h1. Le filtre d'aiguillage
\\
h2. Classe
\\
* org.esupportail.filter.AuthenticationRouter
h2. Paramètres
\\
* org.esupportail.filter.AuthenticationRouter.filterList \*\* Obligatoire, valeur par défaut : aucune
** Donne la liste des filtres d'identification (séparées par un espace) que le filtre d'aiguillage doit savoir gérer.
** Ex : "TRUSTED LDAP CAS"
** Dans la suite de ce document <NOM> représente un nom quelconque dans cette liste.
* org.esupportail.filter.AuthenticationRouter.allowClientIP<NOM> \*\* Non obligatoire, valeur par défaut : aucune
** Donne la liste des adresses IP (séparées par un espace) des machines autorisées à se connecter via le filtre <NOM>
* org.esupportail.filter.AuthenticationRouter.useSecureRequest<NOM> \*\* Non obligatoire, valeur par défaut : false
** Permet de savoir si l'on autorise l'utilisation du filtre <NOM> avec une connexion http ou https.
* org.esupportail.filter.AuthenticationRouter.agent<NOM> \*\* Non obligatoire, valeur par défaut : aucune
** Donne une liste \*d'expressions
régulières - type PERL\* (séparées par un espace) des types d'agent (clients http) autorisée à se connecter via le filtre <NOM>.
** Ex : (.*)mozilla(.*)
* org.esupportail.filter.AuthenticationRouter.httpRequestParameter<NOM> \*\* Non obligatoire, valeur par défaut : aucune
** Donne une liste de paramètres de la requête http et de la valeur associée. La valeur associée prend la forme \*d'une expression régulière - type
PERL\* et est séparé du paramètre par "=". Les différents éléments de la liste sont séparés par un espace.
** Ex : "(.*)identLDAP=true(.*) (.*)ident=LDAP(.*)".
** Le requête devra correspondre à au moins un de ces paramètres pour faire appel au filtre d'identification <NOM>.
* org.esupportail.filter.AuthenticationRouter.destinationHost<NOM> \*\* Non obligatoire, valeur par défaut : aucune
** Donne une liste de noms de sites virtuels et du port associé à chacun. La port associé est séparé du nom du site virtuel par ":". Les différents éléments de la liste\* (expression s régulières - type PERL)
\*sont séparés par un espace.
** Ex : "(.*)univ.fr:80(.*) (.*)localhost(.*)".
** Le requête devra correspondre à au moins un de ces paramètres pour faire appel au filtre d'identification <NOM>.
* org.esupportail.filter.AuthenticationRouter.defaultAuthenticationFilter \*\* Non obligatoire, valeur par défaut : première entrée de org.esupportail.filter.AuthenticationRouter.filterList
** Contient une des valaurs de org.esupportail.filter.AuthenticationRouter.filterList
** Permet de définir le filtre à utiliser par défaut.
h2. Mode de fonctionnement
\\
* Positionne une variable session (org.esupportail.filter.AuthenticationRouter.selectFilter) qui peut une des valeurs de org.esupportail.filter.AuthenticationRouter.filterList.
* Cette variable session sera testée en début de chacun des filtres suivants pour savoir s'ils doivent opérer ou pas.
* Chaque filtre définit un wrapper de request pour redéfinir la fonction getUserPrincipal() et getRemoreUser()
h1. Le filtre d'identification Trusted
\\
h2. Classe
\\
* org.esupportail.filter.AuthenticationTrusted
h2. Paramètres
\\
* org.esupportail.filter.AuthenticationTrusted.TrustedPassword \*\* Non obligatoire, valeur par défaut : trusted
** Donne une liste d'expressions régulières (séparées par un espace) des password autorisés pour se connecter en mode trusted.
h1. Le filtre d'identification LDAP
\\
h2. Classe
\\
* org.esupportail.filter.AuthenticationLDAP
h2. Paramètres
\\
* org.esupportail.filter.AuthenticationLDAP.connectionURL \*\* Obligatoire, valeur par défaut : aucune
** URL du serveur LDAP principal
* org.esupportail.filter.AuthenticationLDAP.alternateURL \*\* Non Obligatoire, valeur par défaut : aucune
** URL du serveur LDAP secondaire
* org.esupportail.filter.AuthenticationLDAP.bindType \*\* Non obligatoire, valeur par défaut : FASTBIND
** Contient FASTBIND ou SEARCHBIND.
* org.esupportail.filter.AuthenticationLDAP.fastBindUserPattern \*\* Obligatoire si bindType=FASTBIND, valeur par défaut : aucune
** Chaîne permettant de construire un DN LDAP à partir du nom de connexion. Exemple : uid=
{0},ou=people,dc=univ,dc=fr
* org.esupportail.filter.AuthenticationLDAP.searchBindConnectionName ** Non obligatoire, valeur par défaut : aucune
** Nom d'utilisateur pour lancer la recherche LDAP en cas de SEARCHBIND. Si le nom est vide cette recherche est faite en mode anonyme.
* org.esupportail.filter.AuthenticationLDAP.searchBindConnectionPassword ** Non obligatoire, valeur par défaut : aucune
** Mot de passe de l'utilisateur qui lance la recherche LDAP en cas de SEARCHBIND.
* org.esupportail.filter.AuthenticationLDAP.searchBindBaseDN ** Obligatoire si bindType=SEARCHBIND, valeur par défaut : aucune
** Base DN utilisée pour lancer la recherche LDAP. Exemple : ou=people,dc=univ,dc=fr
* org.esupportail.filter.AuthenticationLDAP.searchBindScope ** Obligatoire si bindType=SEARCHBIND, valeur par défaut : SUBTREE
** Scope utilisée pour lancer la recherche LDAP.
** Valeurs possible : SUBTREE, ONE, BASE
* org.esupportail.filter.AuthenticationLDAP.searchBindFilter ** Obligatoire si bindType= SEARCHBIND, valeur par défaut : uid={0}
** Chaîne permettant de construire un RDN LDAP à partir du nom de connexion. Exemple : uid=
{0}
h1. Le filtre d'identification CAS
\\
Il s'agit ici en fait n'y plus ni moins du filtre CAS. A ceci près que :
* L'on a adapté le wrapper de request pour redéfinir la fonction getUserPrincipal()
* On teste en début de filtre la variable session org.esupportail.filter.AuthenticationRouter.selectFilter |