SAlenaA
@SAlenaA

Как сделать авторизацию с тремя параметрами?

Добрый день, уже реализована авторизация по логин/паролю. Но в ходе эксплуатации поняли, что нужно добавить параметр активный/заблокированный пользователь. Возможности удаления пользователя нет (для отслеживания действий пользователя нельзя удалять).
На каком этапе проверяется активность пользователя? При проверки логин/пароля или определении его роли?
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ответы на вопрос 2
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Вы намешали аутентификацию и авторизацию. Аутентификацией вы проверяете тот ли это пользователь. Авторизацией - можно ли ему делать что либо в системе. Отталкиваетесь от этого
Ответ написан
@azerphoenix
Здравствуйте!
Я например, когда реализую это на Spring, то на стадии авторизации выбираю активных пользователей с нужными правами и нахожу юзера по email.
Код, который я использую для Spring

@Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
      auth.jdbcAuthentication()
              .dataSource(dataSource)
              .passwordEncoder(passwordEncoder())
              .usersByUsernameQuery("SELECT user_email, user_password, user_active FROM users WHERE user_email=?")
              .authoritiesByUsernameQuery("SELECT u.user_email, ur.roles FROM users u INNER JOIN user_roles ur ON u.user_id=ur.user_id WHERE user_email=?");
    }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы