Class BiudAuthenticationProvider

java.lang.Object
ru.pfr.common.biud.security.auth.BiudAuthenticationProvider
All Implemented Interfaces:
org.springframework.security.authentication.AuthenticationProvider

@Component public class BiudAuthenticationProvider extends Object implements org.springframework.security.authentication.AuthenticationProvider
Основной провайдер аутентификации для системы БИУД.

Реализует полную логику метода checkPassword() из DBUserRegistry, включая:

  • Проверку существования пользователя
  • Проверку всех типов блокировок (через BiudBlockChecker)
  • Проверку пароля (через BiudPasswordEncoder — SHA1+BASE64)
  • Учёт неудачных попыток входа (через TekRabService)
  • Логирование в CS.ENTERLOG (через AuthLogger)

Поток аутентификации:

  1. Загрузить пользователя через BiudUserDetailsService
  2. Получить количество неудачных попыток из TekRabService
  3. Проверить блокировки через BiudBlockChecker
  4. Если не заблокирован — проверить пароль через BiudPasswordEncoder
  5. При успехе — сбросить счётчик попыток, залогировать успех
  6. При ошибке — увеличить счётчик попыток, залогировать неудачу
  • Constructor Details

  • Method Details

    • authenticate

      public org.springframework.security.core.Authentication authenticate(org.springframework.security.core.Authentication authentication) throws org.springframework.security.core.AuthenticationException
      Выполнить аутентификацию пользователя.

      Полная реализация логики checkPassword() из DBUserRegistry.

      Specified by:
      authenticate in interface org.springframework.security.authentication.AuthenticationProvider
      Throws:
      org.springframework.security.core.AuthenticationException
    • supports

      public boolean supports(Class<?> authentication)
      Проверить, поддерживает ли этот провайдер данный тип аутентификации.
      Specified by:
      supports in interface org.springframework.security.authentication.AuthenticationProvider