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 |
Lê 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
- Dependência Maven no
pom.xml(acima). WebSecurityConfiginjetaTokenAuthenticationFilterdo pacoteio.ecosif.security.jwt.- Config de integração local (ex.:
EcosifJwtIntegrationConfig) registraLocalUserDetailsResolverdo módulo. - Remover cópias locais de
TokenProvider/TokenAuthenticationFilter(se ainda existirem).
Atualizar versão do starter
- Publicar novo JAR em
libs/de cada serviço (ou repositório Maven interno). - Bump
<ecosifSecurity>nos cincopom.xml. - Rebuild Docker:
docker compose build ecosif-auth ecosif-masterdata ... - Validar login local (
signin) e chamada autenticada a qualquer API.
Critérios de aceite (Fase 1)
- [x] Cinco serviços Java dependem do starter
0.7.05.202606102 - [x] Nenhum serviço mantém
TokenProviderlocal duplicado - [x]
ECOSIF_JWT_SUBJECT_CLAIM=usernamepadronizado via env - [ ] Testes unitários do starter no repositório Maven (
LIB-01— código-fonte ainda só em JAR) - [x] Documentação de versão e variáveis (este arquivo)
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 |