📊 Capítulo 09: Spring Security 6 Architecture
Especialização Backend com Java 21 & Spring Boot 3
🗺️ A Cadeia de Filtros do Spring Security
flowchart LR
REQ["HTTP Request"]
--> DELEGATE["DelegatingFilterProxy"]
--> CHAIN["SecurityFilterChain"]
subgraph FILTROS["Filtros de Segurança Internos"]
F1["CorsFilter"] --> F2["CsrfFilter"]
F2 --> F3["AuthenticationFilter (JWT / UsernamePassword)"]
F3 --> F4["AuthorizationFilter"]
end
CHAIN --> FILTROS
FILTROS --> DISPATCH["DispatcherServlet (Controller)"]
style REQ fill:#ede7f6,stroke:#512da8,stroke-width:2px
style DELEGATE fill:#fff3e0,stroke:#ff9800,stroke-width:1.5px
style CHAIN fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
style FILTROS fill:#e1f5fe,stroke:#03a9f4,stroke-width:1.5px
style DISPATCH fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
🎯 Slide 1: A Nova Configuração Funcional do Spring Security 6
- Fim do
WebSecurityConfigurerAdapter: O Spring Security 6 adota configuração declarativa via bean@Bean SecurityFilterChain:@Configuration @EnableWebSecurity public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { return http .csrf(csrf -> csrf.disable()) .sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .authorizeHttpRequests(auth -> auth .requestMatchers("/api/v1/auth/**", "/swagger-ui/**").permitAll() .anyRequest().authenticated() ) .build(); } }
🎯 Slide 2: O Fluxo de Autenticação
-
AuthenticationManager: Interface central para autenticar credenciais. -
UserDetailsService: Carrega dados do usuário (nome, senha criptografada, papéis) do banco de dados. SecurityContextHolder: Armazena o usuário autenticado (Authentication) no contexto da Thread atual (ThreadLocal).
🎯 Slide 3: Criptografia Segura de Senhas com BCryptPasswordEncoder
-
Por Que Não Usar MD5/SHA-256 Puro? Hashes rápidos são vulneráveis a ataques de força bruta e tabelas arco-íris (Rainbow Tables).
- BCrypt: Função de derivação de chave lenta adaptativa que embute um Salt criptográfico aleatório e Work Factor configurável (ex.: 10 ou 12 iterações).
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim