Встречается на собеседованиях • сегодня

Как Spring Security выбирает кому дать доступ к данным

Spring Security использует цепочку фильтров и провайдеров для проверки доступа. Основные этапы:

  1. Аутентификация - проверка учетных данных (логин/пароль, токен и т.д.)
  2. Авторизация - проверка прав доступа к ресурсу

Пример конфигурации:

java
@Configuration
@EnableWebSecurity
public class SecurityConfig {
    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests(auth -> auth
                .requestMatchers("/admin/**").hasRole("ADMIN")
                .requestMatchers("/user/**").hasAnyRole("USER", "ADMIN")
                .anyRequest().authenticated()
            );
        return http.build();
    }
}

Ключевые механизмы:

  • AuthenticationManager - проверяет учетные данные
  • AccessDecisionManager - принимает решение о доступе на основе ролей (RoleVoter) или других правил
  • SecurityContextHolder - хранит контекст безопасности текущего потока

Доступ определяется по иерархии: сначала проверяются наиболее специфичные правила, затем общие.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы