Подробное объяснение режима аутентификации входа Spring Security HttpBasic

Java

[Пекин] Столкнувшись с собеседованиями, сменой работы, продвижением по службе и другими проблемами, как ИТ-специалисты могут быстро расти и получать квалификацию для работы на крупных фабриках и козыри для продвижения по службе и повышения заработной платы? Пообщайтесь лицом к лицу с техническими экспертами крупных заводов, чтобы ответить на ваши сомнения. Ссылка на мероприятие «Путь к росту от Сяобая на рабочем месте до технического директора: тревога и искупление на рабочем месте»:Кодер

Поздравляем fpx, новый король на троне, lpl*b мы чемпионы

Оригинальная ссылка:сегмент fault.com/ah/119000002…

1. Сценарии применения режима HttpBasic

Режим аутентификации при входе HttpBasic — это самый простой способ для Spring Security реализовать аутентификацию при входе, и его также можно назвать самым простым способом. Его цель состоит не в том, чтобы гарантировать абсолютную безопасность проверки входа в систему, а в том, чтобы обеспечить проверку входа, которая «защищает от джентльменов, но не от злодеев».

Как будто я в детстве вел дневник, и всегда покупал дневник с маленьким замочком.В самом деле, что толку от этого маленького замочка? Любой, кто действительно хочет его увидеть, может открыть его гвоздем. Его функция такова: однажды ваши родители захотят заглянуть в ваш дневник, вынуть его и посмотреть на него с замком, а потом забыть, это очень хлопотно.

Например, я использую режим HttpBasic для аутентификации при входе: когда я был менеджером отдела в компании, я разработал набор Http-интерфейсов для статистической эффективности, обмена знаниями, генерации кода и экспорта отчетов. Чисто для повышения эффективности в работе, и в то же время немного эгоизма, ведь конкуренция между отделами есть, поэтому я добавил в этот интерфейс проверку HttpBasic. Любой техник в компании может взломать эту проверку максимум за один или два часа. Грубо говоря, данные этого инструмента не так уж и важны, и цель добавления блокировки — не допустить, чтобы они стали публичными данными. Если кто-то, кто хочет его взломать, действительно хочет увидеть данные в нем, это не имеет значения. Это типичный сценарий применения режима HttpBasic.

2. Spring boot2.0 интегрирует безопасность Spring

Spring boot 2, метод maven версии x вводит координаты безопасности Spring.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

3. Режим аутентификации входа HttpBasic

Если используемая версия Spring Boot — версия 1.X, а зависимая версия Security — 4.X, то настройка не требуется, и при запуске доступа к проекту появится всплывающая аутентификация httpbasic по умолчанию.

Теперь мы используем версию Spring Boot 2.0 (в зависимости от версии Security 5.X), HttpBasic больше не является режимом аутентификации по умолчанию, а режим аутентификации по умолчанию в Spring Security 5.x уже является режимом формы. Итак, мы хотим использовать базовый режим, нам нужно настроить его самостоятельно. а такжеsecurity.basic.enabledОн устарел, поэтому нам нужно самим закодировать реализацию.

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
   
   @Override
   protected void configure(HttpSecurity http) throws Exception {
      http.httpBasic()//开启httpbasic认证
      .and()
      .authorizeRequests()
      .anyRequest()
      .authenticated();//所有请求都需要登录认证才能访问
   }

}

Запустите проект, есть такая серия отпечатков журнала в фоновом режиме проекта, а пароль по умолчанию стоит после двоеточия.

Using generated security password: 0cc59a43-c2e7-4c21-a38c-0df8d1a6d624

Мы можем войти в систему через браузер, имя пользователя по умолчанию — user (окно входа ниже разработано не нами, но поставляется с режимом HttpBasic).

在这里插入图片描述
Конечно, мы также можем указать имя пользователя и пароль конфигурации через application.yml

spring:
    security:
      user:
        name: admin
        password: admin

В-четвертых, принцип режима HttpBasic

file

  • Во-первых, режим HttpBasic требует, чтобы передаваемые имя пользователя и пароль были зашифрованы с использованием режима Base64. Если имя пользователя "admin", пароль "admin", строка "admin:admin" Зашифровано с помощью алгоритма кодирования Base64. Зашифрованный результат может быть: YWtaW46YWRtaW4=.
  • Затем используйте авторизацию в качестве заголовка в запросе Http, "Basic YWtaW46YWRtaW4=" в качестве значения заголовка и отправьте его на сервер. (Обратите внимание, что здесь используется строка Basic+space+encrypted)
  • Когда сервер получает такой запрос, он достигает фильтра BasicAuthenticationFilter, который извлекает значение заголовка «Авторизация» и декодирует его с использованием того же алгоритма Base64, который используется для аутентификации личности пользователя.
  • Декодированный результат совпадает с именем пользователя и паролем проверки входа в систему. Если совпадение успешно, фильтр может продолжить доступ к фильтру.

Поэтому режим HttpBasic действительно очень простой и простой режим проверки.Алгоритм шифрования Base64 является обратимым.Вы знаете вышеизложенный принцип, и его можно взломать за считанные минуты. Мы можем использовать инструмент PostMan для отправки Http-запросов для проверки входа.

file

(Для тех, кто хочет научиться программировать самостоятельно, ищитеСообщество Circle T, больше отраслевой информации и больше отраслевых бесплатных видеоуроков. Совершенно бесплатно!)