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

Как ограничить доступ в 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();
    }
  • Вопрос задан
  • 1544 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
piatachki
@piatachki
Немного не туда копаете. Интерфейс UserDetail предполагает, что пользователь может быть заблокирован. Когда реализуете свой
public class CustomUserDetails implements UserDetails
, переопределите метод

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


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

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

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