один. Обзор базовой сертификации
Во время процесса связи протокола HTTP протокол HTTP определяет базовый процесс аутентификации, чтобы позволить HTTP -серверу выполнять идентификационные карты пользователя в веб -браузере. Когда клиент делает запрос на данные на HTTP -сервер, если клиент не будет аутентифицирован, HTTP -сервер проверит имя и пароль клиента через базовый процесс аутентификации, чтобы определить, является ли пользователь законным. После получения запроса аутентификации HTTP -сервера клиент предложит пользователю ввести имя пользователя и пароль, а затем шифровать имя пользователя и пароль с помощью Base64. Зашифрованный зашифрованный текст будет прикреплен к информации запроса. Например, когда имя пользователя является Anjuta, а пароль: 123456, клиент объединяет имя пользователя и пароль с ":" и шифрует объединенную строку с Base64 в виде зашифрованного текста и добавляет CipherText к заголовку запроса каждый раз, когда запрашиваются данные. После каждого раз, когда HTTP -сервер получает пакет запроса, он получает информацию пользователя, прикрепленную к клиенту (Base64, зашифрованное имя пользователя и пароль) в соответствии с протоколом, разворачивает пакет запроса и проверяет имя пользователя и пароль. Если имя пользователя и пароль верны, оно возвращает данные, требуемые клиентом в соответствии с запросом клиента; В противном случае он возвращает код ошибки или переоценивает клиента, чтобы предоставить имя пользователя и пароль.
два. Процесс базовой сертификации
1. Клиент запрашивает данные с сервера, и запрашиваемый контент может быть веб -страницей или другим типом MIME. В настоящее время, предполагая, что клиент еще не был проверен, клиент предоставляет следующий запрос на сервер:
Get /index.html http /1.0
Хост: www.google.com
2. Сервер отправляет код 401 запроса проверки 401, а данные, возвращаемые сервером, примерно следующие:
Http/1,0 401 несанкционирован
Сервер: Sokevo/1.0
Www-authenticate: basic realm = "Google.com"
Контент-тип: текст/HTML
Длина контента: xxx
3. Когда клиент, соответствующий спецификации HTTP1.0 или 1.1 (например, IE, Firefox) получает возвратное значение 401, будет автоматически появляться окно входа в систему, что требует от пользователя ввести имя пользователя и пароль.
4. После того, как пользователь вводит имя пользователя и пароль, имя пользователя и пароль зашифрованы в шифровании Base64, а зашифрованный текст помещается в предыдущую информацию о запросе. Первая информация о запросе, отправленная клиентом, становится следующим контентом:
Get /index.html http /1.0
Хост: www.google.com
Авторизация: Базовая xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Примечание: XXXX .... представляет зашифрованное имя пользователя и пароль.
5. После получения приведенной выше информации о запросе сервер извлекает и расшифровывает информацию пользователя после поля авторизации, а также сравнивает и проверяет расшифрованное имя пользователя и пароль с базой данных пользователя. Если имя пользователя и пароль верны, сервер отправит запрошенный ресурс клиенту в соответствии с запросом:
три. Недостатки базовой сертификации
Целью базовой аутентификации HTTP является предоставление простых функций аутентификации пользователя. Процесс аутентификации прост и ясен и подходит для систем или устройств с низкими требованиями безопасности. Например, аутентификация страницы конфигурации маршрутизатора, используемого всеми, почти всегда принимается. Недостатком является то, что он не имеет гибкой и надежной стратегии аутентификации, такой как неспособность предоставить функцию аутентификации домена (домен или сфера). Кроме того, сила шифрования BASE64 очень низкая, что может только предотвратить поиск его поиска Соху. Конечно, система базовой аутентификации HTTP также может быть объединена с SSL или Kerberos для достижения системы аутентификации с высокой производительностью безопасности (относительно)
Четыре Базовый сертифицированный код реализации Java
Httpsession session = request.getsession (); String user = (String) session.getAttribute ("user"); String Pass; if (user == null) {try {response.setcharacterencoding ("gbk"); Printwriter ut = response.getWriter (); String authorization = request.getheader ("Authorization"); if (Authorization == null || Authorization.equals ("")) {response.setStatus (401); response.setheader ("www-authenticate", "Basic Realm =/", пожалуйста, введите пароль администратора/""); out.print («Извините, что у него нет разрешения !!»); возвращаться; } String userAndPass=new String(new BASE64Decoder().decodeBuffer(authorization.split("" ")[1])); if(userAndPass.split(":").length<2){ response.setStatus(401); response.setHeader("WWW-authenticate","Basic realm=/"Please enter the administrator password/""); out.print("Sorry Для отсутствия разрешения !! "); return;} user = userandPass.split (": ") [0]; pass = userandPass.split (": ") [1]; if (user.equals (" 111 ") && pass.equals (" 111 ")) {session.Setattribut (" пользователь ", пользователь); Dispatcher = requent.getRequestDispatch ("index.jsp"); ex.printstacktrace ();Выше приведено краткое обсуждение принципов и методов реализации HTTP с использованием основной аутентификации, которую вам принес. Я надеюсь, что каждый сможет поддерживать wulin.com больше ~