AccessFilter et web.xml
Ajoutez à votre web.xml, la partie déclarant le servlet filter(AccessFilter) de jGuard et configurez le:
net.sf.jguard.filters.AccessFilter doit être localisé au début de la liste des servlet filters dans web.xml,
pour restreindre toutes les ressources protégées.
Son role est aussi de configurer le mécanisme d'autorisation pour l'application web.
Ainsi, il requiert des paramètres 'récurrents', et des paramètres spécifiques aux mécanismes d'autorisation.
Ici sont décrits les paramètres récurrents:
-
loginField
nom du paramètre du formulaire qui contient le login. Toutes les valeurs sont acceptées excepté j_username.
-
passwordField
nom du paramètre du formulaire qui contient le mot de passe. Toutes les valeurs sont acceptées excepté j_password.
-
indexURI
uri de l'index de votre application web.
-
authenticationFailedURI
uri de redirection quand l'authentification de l'utilisateur échoue -
logonURI
uri pour accéder au formulaire d'authentification. La propriété action du formulaire d'authentification NE DOIT ABSOLUMENT PAS être définie à j_security_check.
-
logonProcessURI
uri pour être authentifié
-
logoffURI
uri pour ne plus être authentifié
-
accessDeniedURI
uri de redirection quand l'accès à une ressource est refusé
-
debug
option booléenne('true' ou 'false'), pour activer le mode debug d'autorisation
-
loginModules
spécifie quels loginModules nécessaires à l'authentification doivent être utilisés. les loginModules listés sont séparés par une virgule.
-
com.foo.MyFirstLoginModule.Flag
spécifie quel flag est attribué au premier loginModule déclaré ci-dessus. il peut avoir pour valeur 'REQUIRED','OPTIONAL','REQUISITE' ou 'SUFFICIENT'.
-
com.foo.MyFirstLoginModule.Options
spécifie les options spécifiques au loginmodule sont utilisées. les options sont séparées par une virgule et de la forme clé="valeur". la variable WEBAPP_HOME(si nécessaire), réfère à l'emplacement où est déployé la webapp. cet emplacement est automatiquement détecté par jGuard.
-
com.foo.MySecondLoginModule.Flag
spécifie quel flag est attribué au second loginModule déclaré ci-dessus. il peut avoir pour valeur 'REQUIRED','OPTIONAL','REQUISITE' ou 'SUFFICIENT'.
-
com.foo.MySecondLoginModule.Options
spécifie les options spécifiques au loginmodule sont utilisées. les options sont séparées par une virgule et de la forme clé="valeur". la variable WEBAPP_HOME (si nécessaire), réfère à l'emplacement où est déployé la webapp. cet emplacement est automatiquement détecté par jGuard.
-
authorizationManager
spécifie le mécanisme d'autorisation pour l'application web (plus précisément, l'implementation de l'interface net.sf.jguard.authorization.AuthorizationManager) Notez: il y a des paramètres 'specifiques' des implémentations de PermissionManager À renseignés aussi dans la configuration d' AccessFilter. Pour respecter la dtd 2.3 d'une web application, vous pouvez ajoutee en dessous de la balise 'context-param', la configuration d' AccessFilter. exemple de configuration d'AccessFilter :
......... ......... <filter> <filter-name>AccessFilter</filter-name> <description>access filter</description> <filter-class>net.sf.jguard.filters.AccessFilter</filter-class> <!--global settings --> <init-param> <param-name>loginField</param-name> <param-value>login</param-value> <description>parameter's name of the form's field which holds the login</description> </init-param> <init-param> <param-name>passwordField</param-name> <param-value>password</param-value> <description>parameter's name of the form's field which holds the password</description> </init-param> <!--global settings --> <!-- authentication settings --> <init-param> <param-name>indexURI</param-name> <param-value>/myApplication/index.jsp</param-value> <description>page to redirect if authentication success</description> </init-param> <init-param> <param-name>authenticationFailedURI</param-name> <param-value> /myApplication/SwitchToModule.do?prefix=/reg&page=/Logon.do&authenticationFailed=authentication%20Failed </param-value> <description>page to redirect if authentication failed</description> </init-param> <init-param> <param-name>logonProcessURI</param-name> <param-value>/myApplication/reg/LogonProcess.do</param-value> <description>page with authentication form</description> </init-param> <init-param> <param-name>logoffURI</param-name> <param-value>/myApplication/reg/Logoff.do</param-value> <description>uri to logoff</description> </init-param> <init-param> <param-name>accessDeniedURI</param-name> <param-value>/myApplication/AccessDenied.do</param-value> <description>page to redirect if access to the rssource is denied</description> </init-param> <init-param> <param-name>loginModules</param-name> <param-value>net.sf.jguard.loginmodules.XmlLoginModule</param-value> <description> loginModules used for authentication, and splitted with the ',' character </description> </init-param> <init-param> <param-name>net.sf.jguard.loginmodules.XmlLoginModule.Flag</param-name> <param-value>required</param-value> <description>flag corresponding to the first loginModule. each loginModule defined above must have his own Flag which can be 'REQUIRED','OPTIONAL','REQUISITE', or 'SUFFICIENT'</description> </init-param> <init-param> <param-name>net.sf.jguard.loginmodules.XmlLoginModule.Options</param-name> <param-value>debug="false",fileLocation="WEBAPP_HOME/WEB-INF/conf/jGuard/jGuardUsersRoles.xml"</param-value> <description> options related to one of the loginModule defined in the 'loginModules' init parameters. WEBAPP_HOME is a reserved keyword, and refers to the webapp location.it permits to avoid webapp resolution (which is automatically detected by jGuard). </description> </init-param> <init-param> <param-name>debug</param-name> <param-value>true</param-value> <description>enable debug with true to trace authorization settings</description> </init-param> <!-- authentication settings --> <!-- authorization settings --> <init-param> <param-name>authorizationManager</param-name> <param-value>net.sf.jguard.authorization.XmlPermissionManager</param-value> <description>class which handle to collect permissionsCollection</description> </init-param> <!-- XmlAuthorizationManager parameter --> <init-param> <param-name>fileLocation</param-name> <param-value>D:\jGuardPrincipalsPermissions.xml</param-value> <description>xml file Location</description> </init-param> <!-- XmlAuthorizationManager parameter --> <!-- authorization settings --> </filter> <filter-mapping> ......... ......... </filter-mapping> <listener> <listener-class>net.sf.jguard.listeners.SessionListener</listener-class> </listener> <listener> <listener-class>net.sf.jguard.listeners.ContextListener</listener-class> </listener> ......... .........