{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 |