Wenn Sie sich bei der Website anmelden, senden Sie Ihre Anmeldeinformationen meistens über ein Formular.
Manchmal wird jedoch ein Dialogfeld für Anmeldeverifizierung im Browser angezeigt, wie in der folgenden Abbildung gezeigt, die grundlegende Authentifizierung unter Verwendung von HTTP.
Schauen wir uns den Prozess dieser Zertifizierung an:
Schritt 1: Der Client sendet eine HTTP -Anforderung an den Server, und der Server überprüft, ob sich der Benutzer angemeldet und überprüft hat. Wenn nicht,
Der Server gibt einen 401 nicht authozierten dem Client zurück und fügt Informationen in den Header "www-authenticate" der Antwort hinzu.
Wie in der Abbildung unten gezeigt.
Schritt 3: Der Server nimmt den Benutzernamen und das Passwort im Autorisierungsheader heraus und führt eine Überprüfung durch. Wenn die Überprüfung bestanden wird, wird die Ressource gemäß der Anfrage an den Kunden gesendet.
Hier ist ein Beispielcode für Java
importieren java.io.ioxception; import Java.io.printwriter; import Javax.servlet.http.httpServlet; Import Javax.Servlet.http.httpServletrequest; import Javax.Servlet.http.httpletRePletRePletRePletRePletRePletRePletRePletResponse; erweitert HttpServlet {public void dodget (httpServletRequest -Anforderung, httpServletResponse -Antwort) löscht IOException {String SessionAuth = (String) request.getSession (). getAtTribute ("auth"); if (sessionAuth! = null) {System.out.println ("Dies ist der nächste Schritt"); NextStep (Anfrage, Antwort); } else {if (! checkheaDerAuth (Anfrage, Antwort)) {response.setStatus (401); response.setheader ("cache-control", "no-store"); response.setDateHeader ("läuft", 0); response.setheader ("www-authenticate", "grundlegender realm =/" test/""); }}} private boolean checkheadeerAuth (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst IOException aus {String auth = request.getheader ("Autorisierung"); System.out.println ("authautiert in Base64 ist" + getFrombase64 (auth)); if ((auth! String decodedAuth = getFrombase64 (auth); System.out.println ("auth von base decodiert von Base64" + decodedAuth); request.getSession (). setAttribute ("auth", decodedAuth); zurückkehren; } else {return false; }} private String getFrombase64 (String s) {if (s == null) return null; Base64DeCoder decoder = new Base64DeCoder (); try {byte [] b = decoder.decodeBuffer (s); neue Zeichenfolge zurückgeben (b); } catch (Ausnahme e) {return null; }} public void NextStep (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst IOException aus {printwriter pw = response.getWriter (); pw.println ("<html> Nächster Schritt, Authentifizierung lautet:" + request.getSession (). getattribute ("auth") + "<br>"); pw.println ("<br> </html>"); } public void dopost (httpServletRequest -Anforderung, httpServletResponse -Antwort) löst IOException {dagget (request, response) aus; }}Wenn die Anforderung zum ersten Mal auf dem Server eintrifft, verfügt der Server nicht über Authentifizierungsinformationen, und der Server gibt eine 401 nicht authobee an den Client zurück.
Platzieren Sie nach der Authentifizierung die Authentifizierungsinformationen in die Sitzung, und es besteht keine Notwendigkeit, sich während der Sitzungsgültigkeitsdauer der Sitzung zu authentifizieren.
Das obige ist der vollständige Inhalt des Java -Instanzcodes für die grundlegende Authentifizierung, die Sie vom Herausgeber zur Verfügung gestellt haben. Ich hoffe, jeder wird Wulin.com mehr unterstützen ~