programmons https://www.javadrive.jp/servlet/auth/
eclipse2019-9 tomcat9
Ceci est un mémo pour vous rappeler ce que vous avez appris. Cela a fonctionné presque selon le site de référence ci-dessus, mais je l'ai un peu changé en fonction de mon environnement, je vais donc noter la partie modifiée.
Une méthode d'authentification simple. Lorsque vous ouvrez le site Web, une fenêtre contextuelle apparaîtra vous demandant votre identifiant de connexion et votre mot de passe. Étant donné que l'identifiant et le mot de passe sont envoyés non cryptés, cela semble assez faible en termes de sécurité. Une fois connecté, vous resterez connecté jusqu'à ce que vous fermiez le navigateur.
Tout d'abord, nous allons créer une servlet.
AuthTest1.java
package auth;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//Modifications avec le site de référence. Annotation ajoutée.
@WebServlet("/AuthTest1")
public class AuthTest1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
response.setContentType("text/html; charset=Shift_JIS");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Test d'authentification de l'utilisateur</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>Test page 1</p>");
//Modifications avec le site de référence. Changer d'URL.
out.println("<p><a href=\"/logintest/AuthTest2\">Aller à la page de test 2</a></p>");
out.println("</body>");
out.println("</html>");
}
}
AuthTest2.java
package auth;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//Modifications avec le site de référence. Annotation ajoutée.
@WebServlet("/AuthTest2")
public class AuthTest2 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
response.setContentType("text/html; charset=Shift_JIS");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Test d'authentification de l'utilisateur</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>Test page 2</p>");
//Modifications avec le site de référence. Changer d'URL.
out.println("<p><a href=\"/logintest/AuthTest1\">Aller à la page de test 1</a></p>");
out.println("</body>");
out.println("</html>");
}
}
L'emplacement du fichier se trouve dans le package d'authentification.
Modifiez web.xml dans le répertoire WEB-INF / lib.
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_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>logintest</display-name>
<!--Modifications avec le site de référence. Parce que j'ai utilisé des annotations<servlet>Quand<servlet-mapping>Effacer.-->
<security-constraint>
<web-resource-collection>
<web-resource-name>User Basic Auth</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>sales</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>User Basic Auth</realm-name>
</login-config>
<security-role>
<role-name>sales</role-name>
</security-role>
</web-app>
Pour docbase = "", spécifiez le répertoire dans lequel se trouve AuthTest1.java. L'emplacement du fichier est le répertoire dans lequel tomcat est installé. \ Tomcat 9 \ conf \ Catalina \ localhost \
auth.xml
<Context path="/auth"
docBase="<?xml version="1.0"?>
<Context docBase="C:\Users\hoge\pleiades-2019-09-java-win-64bit-jre_20191007\pleiades\workspace\logintest\src\auth" path="/auth"> </Context>">
</Context>
Modifiez tomcat-users.xml dans Severs de votre projet Eclipse.
tomcat-users.xml
<!--Modifications avec le site de référence. Tous les rôles définis par défaut ont été supprimés. Parce que j'ai une erreur mystérieuse.-->
<tomcat-users>
<role rolename="sales"/>
<role rolename="staff"/>
<user username="yamada" password="yamada" roles="sales"/>
<user username="katou" password="katou" roles="staff"/>
</tomcat-users>
Lorsque l'écran suivant apparaît Nom d'utilisateur: yamada Mot de passe: yamada Si vous pouvez vous connecter en entrant, vous réussirez! Vous resterez connecté jusqu'à ce que vous fermiez le navigateur.
Les éléments suivants ne peuvent pas se connecter car le rôle n'est pas défini. Nom d'utilisateur: katou Mot de passe: katou
c'est tout. Je vous remercie pour votre travail acharné.
Recommended Posts