Class TekRabService

java.lang.Object
ru.pfr.common.biud.security.service.TekRabService

@Service public class TekRabService extends Object
Сервис для работы с таблицей CS.TEKRAB (текущая работа пользователя).

Отвечает за:

  • Учёт количества неудачных попыток входа
  • Сброс счётчика после успешной аутентификации
  • Получение флагов abd (администратор безопасности) и tpi (только просмотр) из ролей
  • Constructor Summary

    Constructors
    Constructor
    Description
    TekRabService(BiudTekRabRepository tekRabRepository, BiudRoleRepository roleRepository)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    findAbd(String login)
    Проверить, есть ли у пользователя роль с abd=1 (администратор безопасности).
    int
    findTpi(String login)
    Проверить, есть ли у пользователя роль с tpi=0 (ограничение на просмотр).
    int
    Получить количество неудачных попыток входа для пользователя.
    int
    Увеличить счётчик неудачных попыток.
    void
    Сбросить счётчик неудачных попыток после успешной аутентификации.
    void
    setMaxAttempts(String login, int maxAttempts)
    Установить максимальное количество попыток (при блокировке).

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • getAttemptCount

      @Transactional public int getAttemptCount(String login)
      Получить количество неудачных попыток входа для пользователя.

      Аналог метода getKolTekrab() из DBUserRegistry: select * from cs.tekrab where login=?

      Parameters:
      login - логин оператора
      Returns:
      количество неудачных попыток, или -1 если запись не найдена (пользователь не существует)
    • resetAttempts

      @Transactional public void resetAttempts(String login)
      Сбросить счётчик неудачных попыток после успешной аутентификации.

      Аналог обновления в tek_kol_value(): update cs.tekrab set kol=0, ... where login=?

      Parameters:
      login - логин оператора
    • incrementAttempts

      @Transactional public int incrementAttempts(String login)
      Увеличить счётчик неудачных попыток.

      Аналог обновления в tek_kol_value(): update cs.tekrab set kol=kol+1, ... where login=?

      Parameters:
      login - логин оператора
      Returns:
      новое количество неудачных попыток
    • setMaxAttempts

      @Transactional public void setMaxAttempts(String login, int maxAttempts)
      Установить максимальное количество попыток (при блокировке).
      Parameters:
      login - логин оператора
      maxAttempts - максимальное значение счётчика
    • findAbd

      @Transactional public int findAbd(String login)
      Проверить, есть ли у пользователя роль с abd=1 (администратор безопасности).

      Аналог метода fndAbd() из DBUserRegistry: select abd from cs.role where name in (select role from cs.operatorrole where login=?) and abd=1

      Parameters:
      login - логин оператора
      Returns:
      1 если есть роль с abd=1, иначе 0
    • findTpi

      @Transactional public int findTpi(String login)
      Проверить, есть ли у пользователя роль с tpi=0 (ограничение на просмотр).

      Аналог метода fndTpi() из DBUserRegistry: select tpi from cs.role where name in (select role from cs.operatorrole where login=?) and tpi=0

      Parameters:
      login - логин оператора
      Returns:
      0 если есть роль с tpi=0, иначе 1