Когда вы входите на веб -сайт, большую часть времени вы отправляете информацию о входе в систему через форму.
Но иногда диалоговое окно проверки входа в систему появляется в браузере, как показано на рисунке ниже, который является основной аутентификацией с использованием HTTP.
Давайте посмотрим на процесс этой сертификации:
Шаг 1: Клиент отправляет HTTP -запрос на сервер, и сервер проверяет, вошел ли пользователь и проверял. Если не,
Сервер вернет 401, несанкционированный клиенту и добавит информацию в заголовке «www-authenticate» ответа.
Как показано на рисунке ниже.
Шаг 3: Сервер выводит имя пользователя и пароль в заголовке авторизации и выполняет проверку. Если проверка передается, ресурс будет отправлен клиенту в соответствии с запросом.
Вот пример кода для Java
Импорт java.io.ioexception; import java.io.printwriter; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservesse extends httpservlet {public void Doget (httpservlectrequest, httpservletresponse response) throws ioexception {string sessionauth = (string) request.getSession (). getAttribute ("auth"); if (sessionauth! = null) {System.out.println («Это следующий шаг»); NextStep (запрос, ответ); } else {if (! checkEaderauth (request, response)) {response.setStatus (401); response.setheader («Контроль кеша», «без магазина»); response.setDateHeader («истекает», 0); response.setheader ("www-authenticate", "Basic Realm =/" test/""); }}} private boolean checkheaderauth (httpservletrequest, httpservletresponse response) throws ioexception {String auth = request.getheader ("Authorization"); System.out.println ("Auth, кодируемая в Base64," + getFrombase64 (auth)); if ((auth! = null) && (auth.length ()> 6)) {auth = auth.substring (6, auth.length ()); String decodedauth = getFrombase64 (auth); System.out.println («АВТОР, декодированная из BASE64, является» + decodedauth); request.getSession (). setattribute ("auth", decodedauth); вернуть истину; } else {return false; }} частная строка getFrombase64 (string s) {if (s == null) return null; Base64decoder декодер = new Base64decoder (); try {byte [] b = decoder.decodebuffer (s); вернуть новую строку (b); } catch (Exception e) {return null; }} public void nextStep (httpservlectrequest -запрос, httpservletresponse response) Throws ioexception {printwriter pw = response.getWriter (); pw.println ("<html> Следующий шаг, аутентификация:" + request.getSession (). getattribute ("auth") + "<br>"); pw.println ("<br> </html>"); } public void dopost (httpservletrequest, httpservletresponse response), бросает ioexception {doget (запрос, ответ); }}Когда запрос сначала прибывает на сервер, сервер не имеет информации об аутентификации, и сервер вернет 401, несанкционированный клиенту.
После аутентификации поместите информацию об аутентификации в сеансе, и в будущем нет необходимости аутентифицировать в течение периода достоверности сеанса.
Выше приведено полное содержание кода экземпляра Java для базовой аутентификации, представленной вам редактором. Я надеюсь, что все будут поддерживать wulin.com больше ~