Lass uns programmieren https://www.javadrive.jp/servlet/auth/
eclipse2019-9 tomcat9
Dies ist ein Memo, um sich daran zu erinnern, was Sie gelernt haben. Es hat fast gemäß der obigen Referenzseite funktioniert, aber ich habe es ein wenig entsprechend meiner Umgebung geändert, sodass ich den geänderten Teil aufschreiben werde.
Eine einfache Authentifizierungsmethode. Wenn Sie die Website öffnen, wird ein Popup angezeigt, in dem Sie nach Ihrer Login-ID und Ihrem Passwort gefragt werden. Da die ID und das Passwort unverschlüsselt gesendet werden, scheint es in Bezug auf die Sicherheit recht schwach zu sein. Sobald Sie sich angemeldet haben, bleiben Sie angemeldet, bis Sie den Browser schließen.
Zunächst machen wir ein 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;
//Änderungen an der Referenzseite. Anmerkung hinzugefügt.
@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>Benutzerauthentifizierungstest</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>Test Seite 1</p>");
//Änderungen an der Referenzseite. URL ändern.
out.println("<p><a href=\"/logintest/AuthTest2\">Fahren Sie mit Testseite 2 fort</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;
//Änderungen an der Referenzseite. Anmerkung hinzugefügt.
@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>Benutzerauthentifizierungstest</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>Test Seite 2</p>");
//Änderungen an der Referenzseite. URL ändern.
out.println("<p><a href=\"/logintest/AuthTest1\">Gehen Sie zu Testseite 1</a></p>");
out.println("</body>");
out.println("</html>");
}
}
Der Speicherort der Datei befindet sich im Auth-Paket.
Ändern Sie die Datei web.xml im Verzeichnis 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>
<!--Änderungen an der Referenzseite. Weil ich Anmerkungen verwendet habe<servlet>Wann<servlet-mapping>Löschen.-->
<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>
Geben Sie für docbase = "" das Verzeichnis an, in dem sich AuthTest1.java befindet. Der Speicherort der Datei ist das Verzeichnis, in dem Tomcat installiert ist. \ 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>
Ändern Sie tomcat-users.xml in Severs Ihres Eclipse-Projekts.
tomcat-users.xml
<!--Änderungen an der Referenzseite. Alle standardmäßig festgelegten Rollen wurden gelöscht. Weil ich einen mysteriösen Fehler bekommen habe.-->
<tomcat-users>
<role rolename="sales"/>
<role rolename="staff"/>
<user username="yamada" password="yamada" roles="sales"/>
<user username="katou" password="katou" roles="staff"/>
</tomcat-users>
Wenn der folgende Bildschirm angezeigt wird Benutzername: yamada Passwort: Yamada Wenn Sie sich durch Eingabe anmelden können, werden Sie erfolgreich sein! Sie bleiben angemeldet, bis Sie den Browser schließen.
Folgendes kann sich nicht anmelden, da die Rolle nicht festgelegt ist. Benutzername: katou Passwort: katou
das ist alles. Danke für deine harte Arbeit.
Recommended Posts