Outils pour utilisateurs

Outils du site


helloworld:web:java:authentification

Sans formulaire

tomcat-users.xml
<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>
web.xml
</<?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>

Rendu de /projet/auth/* : Fenêtre identification native navigateur

Avec formulaire

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”.

login.html
<!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>
loginerror.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.
helloworld/web/java/authentification.txt · Dernière modification : 2020/05/10 23:54 de root