Cuando inicia sesión en el sitio web, la mayoría de las veces, envía su información de inicio de sesión a través de un formulario.
Pero a veces, el navegador aparece un cuadro de diálogo de verificación de inicio de sesión, como se muestra en la figura a continuación, que es la autenticación básica que usa HTTP.
Echemos un vistazo al proceso de esta certificación:
Paso 1: El cliente envía una solicitud HTTP al servidor, y el servidor verifica si el usuario ha iniciado sesión y verificado. Si no,
El servidor devolverá un 401 no autorizado al cliente y agregará información en el encabezado "www-autoricate" de la respuesta.
Como se muestra en la figura a continuación.
Paso 3: El servidor saca el nombre de usuario y la contraseña en el encabezado de autorización y realiza verificación. Si se aprueba la verificación, el recurso se enviará al cliente de acuerdo con la solicitud.
Aquí hay un código de muestra para Java
import java.io.ioException; import java.io.printwriter; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletRequest; import javax.servlet.http.ttpservletResponse; import.misc.base64decoder; extiende httpservlet {public void doget (httpservletRequest solicitud, respuesta httpservletResponse) lanza ioexception {string sessionAuth = (string) request.getSession (). getAttribute ("auth"); if (sessionAuth! = null) {system.out.println ("Este es el siguiente paso"); NextStep (solicitud, respuesta); } else {if (! checkheaderauth (solicitud, respuesta)) {Response.SetStatus (401); Respuesta.setheader ("Cache-Control", "No-Store"); respuesta.setDateHeader ("expiras", 0); Respuesta.setheader ("www-autenticate", "Realm básico =/" test/""); }}} private boolean checkheaderauth (solicitud httpservletRequest, respuesta httpservletreSponse) lanza ioexception {string auth = requit.getheader ("autorización"); System.out.println ("Auth codificado en Base64 es" + getFrombase64 (auth)); if ((auth! = null) && (auth.length ()> 6)) {auth = auth.substring (6, auth.length ()); Cadena decodeDauth = getFrombase64 (auth); System.out.println ("Auth decodificado de Base64 es" + decodeDauth); request.getSession (). setAttribute ("auth", decodeDauth); devolver verdadero; } else {return false; }} cadena privada getFrombase64 (cadena s) {if (s == null) return null; Base64Decoder decoder = new Base64Decoder (); intente {byte [] b = decoder.decodeBuffer (s); devolver una nueva cadena (b); } capt (excepción e) {return null; }} public void NextStep (httpservletRequest solicitud, respuesta httpservletResponse) lanza ioexception {printwriter pw = respuesta.getwriter (); pw.println ("<html> siguiente paso, la autenticación es:" + request.getSession (). getAttribute ("auth") + "<br>"); pw.println ("<br> </html>"); } public void dopost (httpservletRequest solicitud, respuesta httpservletResponse) lanza ioexception {doget (solicitud, respuesta); }}Cuando la solicitud llega por primera vez al servidor, el servidor no tiene información de autenticación, y el servidor devolverá un 401 no autorizado al cliente.
Después de la autenticación, coloque la información de autenticación en la sesión, y no es necesario autenticarse durante el período de validez de la sesión en el futuro.
Lo anterior es el contenido completo del código de instancia Java para la autenticación básica que le presenta el editor. Espero que todos apoyen a Wulin.com más ~