Задать вопрос

Как ограничить доступ в Spring Security для пользователей со статусом blocked?

Добрый день, Хочу сделать что бы пользователь со статусам blocked не мог авторизоваться и выдать соответствующую ошибку. есть ли в спринге какие то инструменты для этого?
Вот мой config Spring Security.
@Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/","/login","/resources/*","/favicon.ico").permitAll()
                .antMatchers("/user/**").access("hasRole('ROLE_USER')")
                .antMatchers("/admin/**").access("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPER_ADMIN')")
                .and()
                .formLogin()
                .loginProcessingUrl("/login")
                .loginPage("/login")
                .successHandler(authenticationSuccessHandler)
                .failureUrl("/login?error=true")
                .and()
                .logout().logoutUrl("/logout").logoutSuccessUrl("/login")
                .and().csrf().disable();
    }
  • Вопрос задан
  • 1581 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
Решения вопроса 1
piatachki
@piatachki
Немного не туда копаете. Интерфейс UserDetail предполагает, что пользователь может быть заблокирован. Когда реализуете свой
public class CustomUserDetails implements UserDetails
, переопределите метод

@Override
    public boolean isAccountNonLocked() {
        return true;
    }


согласно логике работы, которую предполагаете для своего ПО. За сим всё. Матчерсы трогать не надо.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы