JavaSpring SecurityJWTRBACDocker
JWT RBAC Spring
Template de autenticação stateless em Java + Spring Security com JWT HS256 e controle de acesso por papéis (RBAC), dockerizado e pronto para reuso em microsserviços.
01 de junho de 20241 min de leitura
Projeto em desenvolvimento
Este estudo de caso ainda está sendo finalizado. O conteúdo é preliminar e deve mudar conforme o projeto evoluir.
Status
em desenvolvimento
Papel
Backend Engineer
Stack
Java, Spring Boot, Spring Security, JWT HS256, RBAC, Docker
Objetivo
Um template enxuto de autenticação stateless em Spring Security: login, emissão e validação de JWT assinado com HS256 e autorização baseada em papéis (RBAC). A ideia é servir como ponto de partida dockerizado e reutilizável entre microsserviços, sem reimplementar segurança do zero a cada projeto.
Decisões
- JWT HS256 para autenticação stateless entre clientes e APIs.
- RBAC: papéis e permissões mapeados para as
authoritiesdo Spring Security. - Filtros e providers do Spring Security para validação e políticas de acesso.
- Docker para subir o serviço de forma reproduzível e integrável a outros stacks.
@Bean
SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return http
.csrf(AbstractHttpConfigurer::disable)
.sessionManagement(s -> s.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeHttpRequests(auth -> auth
.requestMatchers("/auth/**").permitAll()
.requestMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
)
.addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class)
.build();
}