Quando você faz login no site, na maioria das vezes, você envia suas informações de login através de um formulário.
Mas às vezes uma caixa de diálogo de verificação de login aparece pelo navegador, como mostrado na figura abaixo, que é a autenticação básica usando HTTP.
Vamos dar uma olhada no processo desta certificação:
Etapa 1: o cliente envia uma solicitação HTTP para o servidor e o servidor verifica se o usuário efetuou login e verificado. Se não,
O servidor retornará um 401 não autônomo ao cliente e adicionará informações no cabeçalho "www-autenticate" da resposta.
Como mostrado na figura abaixo.
Etapa 3: O servidor retira o nome de usuário e a senha no cabeçalho da autorização e executa a verificação. Se a verificação for passada, o recurso será enviado ao cliente de acordo com a solicitação.
Aqui está um código de amostra para Java
import java.io.IOException;import java.io.PrintWriter;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import sun.misc.BASE64Decoder;public class HTTPAuthServlet estende o httpServlet {public void Doget (solicitação httpServletRequest, httpServletResponse resposta) lança ioexception {string sessionAuth = (string) request.getSession (). getAttribute ("auth"); if (sessionAuth! = null) {System.out.println ("Este é o próximo passo"); Nextstep (solicitação, resposta); } else {if (! checkHeaderauth (solicitação, resposta)) {Response.SetStatus (401); Response.setheader ("Cache-Control", "No Store"); Response.SetDateHeader ("Expira", 0); Response.setheader ("www-autenticate", "reino básico =/" teste/""); }}} private boolean checkheaderauth (solicitação httpServletRequest, httpServletResponse resposta) lança ioexception {string auth = request.getheader ("autorização"); System.out.println ("Auth Coded in Base64 é" + getFombase64 (auth)); if ((auth! = null) && (auth.length ()> 6)) {auth = auth.substring (6, auth.length ()); String decodedauth = getFombase64 (auth); System.out.println ("Auth decoded da base64 é" + decodedauth); request.getSession (). SetAttribute ("auth", decodedauth); retornar true; } else {return false; }} private string getFombase64 (string s) {if (s == null) return null; Base64decoder decodificador = new base64decoder (); tente {byte [] b = decodificador.DecodeBuffer (s); retornar nova string (b); } catch (Exceção e) {return null; }} public void nextStep (solicitação httpServletRequest, httpServletResponse resposta) lança IoException {printWriter pw = Response.getWriter (); pw.println ("<html> A próxima etapa, a autenticação é:" + request.getSession (). getAttribute ("auth") + "<br>"); pw.println ("<br> </html>"); } public void DoPost (solicitação httpServletRequest, httpServletResponse Response) lança IoException {Doget (solicitação, resposta); }}Quando a solicitação chega primeiro ao servidor, o servidor não possui informações de autenticação e o servidor retornará um 401 não autônomo ao cliente.
Após a autenticação, coloque as informações de autenticação na sessão e não há necessidade de autenticar durante o período de validade da sessão no futuro.
O exposto acima é o conteúdo completo do código de instância Java para autenticação básica trazida a você pelo editor. Espero que todos apoiem mais wulin.com ~