ecosif-spring-boot-starter-security — JWT ECOSIF (Fase 1)

Biblioteca compartilhada que centraliza validação do JWT ECOSIF nos microsserviços Java.

Versão atual no branch: 0.7.05.202606102
GroupId: io.ecosif.security
ArtifactId: ecosif-spring-boot-starter-security

O que o starter faz

Componente Função
TokenProvider Assina e valida JWT HMAC (AUTH_TOKEN_SECRET)
TokenAuthenticationFilter Authorization: Bearer e popula SecurityContext
JwtProperties Mapeia AUTH_TOKEN_SECRET, TOKEN_EXPIRATION, ECOSIF_JWT_SUBJECT_CLAIM
SubjectAwareJwtSubjectUserDetailsService Resolve usuário pelo claim sub configurável

O starter não inclui validação de tokens Microsoft/Google — isso fica apenas no ecosif-auth.

Serviços que consomem o starter

Módulo pom.xml property JAR local
ecosif-auth ${ecosifSecurity} libs/ecosif-spring-boot-starter-security-*.jar
ecosif-masterdata idem idem
ecosif-moviments idem idem
ecosif-querys idem idem
ecosif-reports idem idem

Cada serviço declara:

<properties>
  <ecosifSecurity>0.7.05.202606102</ecosifSecurity>
</properties>

<dependency>
  <groupId>io.ecosif.security</groupId>
  <artifactId>ecosif-spring-boot-starter-security</artifactId>
  <version>${ecosifSecurity}</version>
</dependency>

Variáveis de ambiente (obrigatórias)

Variável Onde Default Descrição
AUTH_TOKEN_SECRET Todos os Java + gateway Mesmo valor em todos os serviços
TOKEN_EXPIRATION Auth (emissão) 1800000 TTL do JWT em ms
ECOSIF_JWT_SUBJECT_CLAIM Todos os Java username Claim usado como sub (username ou userId)

Ver variaveis_autenticacao_baseline.md para o perfil .env-dev.

Integração em cada serviço

  1. Dependência Maven no pom.xml (acima).
  2. WebSecurityConfig injeta TokenAuthenticationFilter do pacote io.ecosif.security.jwt.
  3. Config de integração local (ex.: EcosifJwtIntegrationConfig) registra LocalUserDetailsResolver do módulo.
  4. Remover cópias locais de TokenProvider / TokenAuthenticationFilter (se ainda existirem).

Atualizar versão do starter

  1. Publicar novo JAR em libs/ de cada serviço (ou repositório Maven interno).
  2. Bump <ecosifSecurity> nos cinco pom.xml.
  3. Rebuild Docker: docker compose build ecosif-auth ecosif-masterdata ...
  4. Validar login local (signin) e chamada autenticada a qualquer API.

Critérios de aceite (Fase 1)

Pendências pós-Fase 1

Item Fase Notas
Repositório Maven do starter (LIB-01) Backlog Hoje só JAR em libs/
Desativar oauth2Login() nos backends Fase 4 ✅ Concluído (P4-03)
Modos B/C (EcosifOAuth2ResourceServerConfig) MVP4 / Modo B Resource Server JWKS

Referências