Build e consumo — starter JWT
Build local
mvn clean install
Distribuir JAR
mvn clean package
./distribute-jar.sh
Copia ecosif-spring-boot-starter-security-{version}.jar para libs/ de auth, masterdata, moviments, querys e reports.
Publicação automática (GitHub Packages)
O workflow publish-maven.yml publica a biblioteca no GitHub Packages e anexa o .jar como artifact da execução.
pushde tagv*: build + testes +mvn deployno Maven registry do repositório.workflow_dispatch: build/test + upload do artifact (sem publish, salvo se disparado em tag).
Exemplo:
git tag -a v0.7.07.202607081 -m "Release 0.7.07.202607081"
git push origin v0.7.07.202607081
Para consumir via GitHub Packages (alternativa ao JAR em libs/):
<repositories>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/disoft-gh/ecosif-spring-boot-starter-security</url>
</repository>
</repositories>
No CI dos consumidores, autentique Maven com GITHUB_TOKEN (mesmo owner) ou PAT com read:packages.
Dependência Maven
<properties>
<ecosifSecurity>0.7.07.202607081</ecosifSecurity>
</properties>
<dependency>
<groupId>io.ecosif.security</groupId>
<artifactId>ecosif-spring-boot-starter-security</artifactId>
<version>${ecosifSecurity}</version>
</dependency>
Configuração YAML
app:
auth:
tokenSecret: ${AUTH_TOKEN_SECRET}
tokenExpirationMsec: ${TOKEN_EXPIRATION:1800000}
subjectClaim: ${ECOSIF_JWT_SUBJECT_CLAIM:username}
Bean de resolução do utilizador
@Bean
public JwtSubjectUserDetailsService jwtSubjectUserDetailsService(
JwtProperties jwtProperties,
LocalUserDetailService service) {
return new SubjectAwareJwtSubjectUserDetailsService(
jwtProperties,
service::loadUserByUsername,
service::loadUserById);
}
Emissão do token (ecosif-auth)
tokenProvider.createToken(user.getUsername(), user.getId());
Auto-configuração ativa quando app.auth.tokenSecret está definido.
Consumidores
ecosif-authecosif-masterdataecosif-movimentsecosif-querysecosif-reports