Revert "Fix: Remove explicit redirect-path to enable transparent OIDC callback handling"

This reverts commit a67932db3c.
This commit is contained in:
dahoud
2025-12-24 02:40:37 +00:00
parent a67932db3c
commit c0e2c4da45
2 changed files with 24 additions and 24 deletions

View File

@@ -105,10 +105,8 @@ quarkus.oidc.auth-server-url=${KEYCLOAK_AUTH_SERVER_URL:https://security.lions.d
quarkus.oidc.client-id=unionflow-client
quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET}
quarkus.oidc.application-type=web-app
# NOTE: For web-app (servlet/JSF), Quarkus OIDC uses a filter to intercept ANY URL with code+state params
# Do NOT set explicit redirect-path - let Quarkus handle it automatically via its filter mechanism
# This allows transparent callback handling without showing intermediate callback page to users
#quarkus.oidc.authentication.redirect-path=/auth/callback
Callback path - must match Keycloak Valid Redirect URIs configuration
quarkus.oidc.authentication.redirect-path=/auth/callback
# quarkus.oidc.authentication.redirect-path is NOT set - let Quarkus use its default
quarkus.oidc.authentication.force-redirect-https-scheme=true
quarkus.oidc.authentication.restore-path-after-redirect=true

View File

@@ -11,11 +11,10 @@ quarkus.http.tcp-quick-ack=true
quarkus.http.tcp-cork=true
# Configuration Session HTTP
# NOTE: Certaines propriétés de session sont gérées par Quarkus OIDC, pas directement par quarkus.http
# quarkus.http.session-timeout=60m # Non supporté - géré par OIDC
# quarkus.http.session-cookie-same-site=strict # Non supporté - configuré via quarkus.oidc.authentication.cookie-same-site
# quarkus.http.session-cookie-http-only=true # Non supporté - géré automatiquement par Quarkus
# quarkus.http.session-cookie-secure=true # Non supporté - géré automatiquement par Quarkus
quarkus.http.session-timeout=60m
quarkus.http.session-cookie-same-site=lax
quarkus.http.session-cookie-http-only=true
quarkus.http.session-cookie-secure=false
# Configuration logging
quarkus.log.console.enable=true
@@ -23,10 +22,18 @@ quarkus.log.console.level=INFO
quarkus.log.console.format=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{2.}] (%t) %s%e%n
# MyFaces Configuration
# NOTE: Les propriétés MyFaces doivent être configurées via web.xml (context-param)
# ou via des variables système, pas via application.properties avec le préfixe quarkus.myfaces.*
# Voir web.xml pour la configuration actuelle
# quarkus.myfaces.* propriétés ne sont pas supportées par l'extension quarkus-primefaces
quarkus.myfaces.project-stage=Development
quarkus.myfaces.state-saving-method=server
quarkus.myfaces.number-of-views-in-session=50
quarkus.myfaces.number-of-sequential-views-in-session=10
quarkus.myfaces.serialize-state-in-session=false
quarkus.myfaces.client-view-state-timeout=3600000
quarkus.myfaces.view-expired-exception-handler-redirect-page=/
quarkus.myfaces.check-id-production-mode=false
quarkus.myfaces.strict-xhtml-links=false
quarkus.myfaces.refresh-transient-build-on-pss=true
quarkus.myfaces.resource-max-time-expires=604800000
quarkus.myfaces.resource-buffer-size=2048
# PrimeFaces Configuration
# IMPORTANT: Nous laissons PrimeFaces sans th<74>me par d<>faut et chargeons le th<74>me Freya via index.xhtml/main-template.xhtml
@@ -35,7 +42,7 @@ primefaces.THEME=none
primefaces.FONT_AWESOME=true
primefaces.CLIENT_SIDE_VALIDATION=true
primefaces.MOVE_SCRIPTS_TO_BOTTOM=true
primefaces.CSP=true
primefaces.CSP=false
primefaces.UPLOADER=commons
primefaces.AUTO_UPDATE=false
primefaces.CACHE_PROVIDER=org.primefaces.cache.DefaultCacheProvider
@@ -46,21 +53,16 @@ omnifaces.CDN_RESOURCE_HANDLER_DISABLED=true
omnifaces.COMBINED_RESOURCE_HANDLER_DISABLED=false
# Configuration Backend UnionFlow
# SÉCURITÉ: En production, toujours utiliser HTTPS
# En développement local, utiliser HTTP (voir application-dev.properties)
unionflow.backend.url=${UNIONFLOW_BACKEND_URL:http://localhost:8085}
# Configuration REST Client
quarkus.rest-client."unionflow-api".url=${unionflow.backend.url}
quarkus.rest-client."unionflow-api".scope=jakarta.inject.Singleton
quarkus.rest-client."unionflow-api".connect-timeout=5000
quarkus.rest-client."unionflow-api".read-timeout=15000
quarkus.rest-client."unionflow-api".read-timeout=30000
# Gestion des erreurs REST + propagation JWT vers le backend
# SÉCURITÉ: Utilise AuthHeaderFactory de lions-user-manager qui injecte JsonWebToken depuis Quarkus OIDC
quarkus.rest-client."unionflow-api".providers=dev.lions.unionflow.client.service.RestClientExceptionMapper
# NOTE: headers-factory doit être configuré via @RegisterClientHeaders sur l'interface REST Client
# quarkus.rest-client."unionflow-api".headers-factory=dev.lions.user.manager.client.filter.AuthHeaderFactory # Non supporté via properties
quarkus.rest-client."unionflow-api".providers=dev.lions.unionflow.client.service.RestClientExceptionMapper,dev.lions.unionflow.client.security.JwtClientRequestFilter
# Configuration Keycloak OIDC
quarkus.oidc.enabled=true
@@ -68,7 +70,7 @@ quarkus.oidc.auth-server-url=https://security.lions.dev/realms/unionflow
quarkus.oidc.client-id=unionflow-client
quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET}
quarkus.oidc.application-type=web-app
#quarkus.oidc.authentication.redirect-path=/auth/callback
quarkus.oidc.authentication.redirect-path=/auth/callback
quarkus.oidc.authentication.restore-path-after-redirect=true
quarkus.oidc.authentication.scopes=openid,profile,email,roles
quarkus.oidc.token.issuer=https://security.lions.dev/realms/unionflow
@@ -86,10 +88,10 @@ quarkus.oidc.discovery-enabled=true
# Vérification du token activée
# ✅ CORRIGÉ: Le mapper Keycloak problématique a été supprimé (17/11/2025)
# Le scope "roles" gère maintenant correctement realm_access.roles (objet unique)
# quarkus.oidc.verify-access-token=true # Non supporté pour web-app - vérification automatique
quarkus.oidc.verify-access-token=true
# Activation de la sécurité
# quarkus.security.auth.enabled=true # Non supporté - la sécurité est activée automatiquement si OIDC est configuré
quarkus.security.auth.enabled=true
# Chemins publics (non prot<6F>g<EFBFBD>s par OIDC) - Doit <20>tre d<>fini en premier
# La page d'accueil (/) et index.xhtml sont publics pour permettre l'affichage initial