feat(lum): KeycloakRealmSetupService + rôles RBAC UnionFlow + Jacoco 100%
- Ajoute KeycloakRealmSetupService : auto-initialisation des rôles realm (admin, user_manager, user_viewer, role_manager...) et assignation du rôle user_manager au service account unionflow-server au démarrage (idempotent, retries, thread séparé pour ne pas bloquer le démarrage) → Corrige le 403 sur resetPassword / changement de mot de passe premier login - UserResource : étend les @RolesAllowed avec ADMIN/SUPER_ADMIN/USER pour permettre aux appels inter-services unionflow-server d'accéder aux endpoints sans être bloqués par le RBAC LUM ; corrige sendVerificationEmail (retourne Response) - application-dev.properties : service-accounts.user-manager-clients=unionflow-server - application-prod.properties : client-id, credentials.secret, token.audience, auto-setup - application-test.properties : H2 in-memory (plus besoin de Docker pour les tests) - pom.xml : H2 scope test, Jacoco 100% enforcement (exclusions MapStruct/repos/setup), annotation processors MapStruct+Lombok explicites - .gitignore + .env ajouté (.env exclu du commit) - script/docker/.env.example : variables KEYCLOAK_ADMIN_USERNAME/PASSWORD documentées
This commit is contained in:
@@ -16,27 +16,39 @@ quarkus.http.cors.origins=http://localhost:3000,http://localhost:8080,http://loc
|
||||
# OIDC Configuration DEV
|
||||
# ============================================
|
||||
quarkus.oidc.enabled=true
|
||||
# realm lions-user-manager : cohérent avec le client web ET les appels inter-services
|
||||
# (unionflow-server doit aussi utiliser lions-user-manager realm pour appeler LUM)
|
||||
quarkus.oidc.auth-server-url=http://localhost:8180/realms/lions-user-manager
|
||||
quarkus.oidc.client-id=lions-user-manager-server
|
||||
quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET:V3nP8kRzW5yX2mTqBcE7aJdFuHsL4gYo}
|
||||
quarkus.oidc.token.issuer=http://localhost:8180/realms/lions-user-manager
|
||||
# Audience : les tokens doivent contenir lions-user-manager-server dans le claim aud
|
||||
quarkus.oidc.token.audience=lions-user-manager-server
|
||||
quarkus.oidc.tls.verification=none
|
||||
|
||||
# ============================================
|
||||
# Keycloak Admin Client Configuration DEV
|
||||
# ============================================
|
||||
lions.keycloak.server-url=http://localhost:8180
|
||||
lions.keycloak.admin-username=admin
|
||||
lions.keycloak.admin-password=admin
|
||||
lions.keycloak.admin-username=${KEYCLOAK_ADMIN_USERNAME:admin}
|
||||
lions.keycloak.admin-password=${KEYCLOAK_ADMIN_PASSWORD:admin}
|
||||
lions.keycloak.connection-pool-size=5
|
||||
lions.keycloak.timeout-seconds=30
|
||||
lions.keycloak.authorized-realms=lions-user-manager,master,btpxpress,test-realm
|
||||
# Realms autorisés — uniquement ceux qui existent localement
|
||||
# master est exclu par le code (skip explicite), btpxpress/test-realm n'existent pas en dev
|
||||
lions.keycloak.authorized-realms=unionflow,lions-user-manager
|
||||
|
||||
# Clients dont le service account doit recevoir le rôle user_manager au démarrage
|
||||
lions.keycloak.service-accounts.user-manager-clients=unionflow-server
|
||||
|
||||
# Quarkus-managed Keycloak Admin Client DEV
|
||||
quarkus.keycloak.admin-client.server-url=http://localhost:8180
|
||||
quarkus.keycloak.admin-client.realm=master
|
||||
quarkus.keycloak.admin-client.client-id=admin-cli
|
||||
quarkus.keycloak.admin-client.grant-type=PASSWORD
|
||||
quarkus.keycloak.admin-client.username=admin
|
||||
quarkus.keycloak.admin-client.password=admin
|
||||
quarkus.keycloak.admin-client.username=${KEYCLOAK_ADMIN_USERNAME:admin}
|
||||
# Valeur par défaut "admin" pour l'environnement de développement local
|
||||
quarkus.keycloak.admin-client.password=${KEYCLOAK_ADMIN_PASSWORD:admin}
|
||||
|
||||
# ============================================
|
||||
# Audit Configuration DEV
|
||||
|
||||
Reference in New Issue
Block a user