<tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <user username="user" password="pass" roles="formation"/> </tomcat-users>
</<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>Secure</display-name> <security-constraint> <display-name>Contraintes</display-name> <web-resource-collection> <web-resource-name>Application</web-resource-name> <url-pattern>/auth/*</url-pattern> <http-method>GET</http-method> </web-resource-collection> <auth-constraint> <role-name>formation</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>Notre application</realm-name> </login-config> <security-role> <description>Liste des groupes</description> <role-name>formations</role-name> </security-role> </web-app>
Il convient d'appliquer les mêmes modifications que pour la version sans formulaire en remplaçant dans le fichier web.xml
la section login-config
par :
<login-config> <auth-method>FORM</auth-method> <form-login-config> <form-login-page>/login.html</form-login-page> <form-error-page>/loginerror.html</form-error-page> </form-login-config> </login-config>
Dans le formulaire ci-dessous, il est indispensable de conserver les noms action=“j_security_check”
, name=“j_username”
et name=“j_password”
.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form method="post" action="j_security_check"> Login : <input type="text" name="j_username"><br /> Password : <input type="password" name="j_password"><br /> <input type="submit" value="Valider"> </form> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <p>Erreur d'authentification.</p> </body> </html>
Ensuite, les commandes suivantes peuvent être utilisées :
request.isUserInRole(“admin”)
indique si l'utilisateur fait partie du groupe admin
,request.getRemoteUser()
: renvoie le nom de l'utilisateur authentifié,session.invalidate()
termine une session.