BUG: Appels API du circuit Blazor non authentifiés après F5/reload — 302 en boucle, refresh live mort #45
Labels
No labels
bug
chore
design
dx:ci
dx:database
dx:dotnet
dx:infra
dx:security
dx:tests
dx:ui
etape-1
etape-2
etape-3
etape-4
etape-5
etape-6
etape-7
feature
priority-high
priority-low
priority-medium
security
spec
tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nonobis/Heimdall#45
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Après un rechargement de page (F5) ou un nouvel onglet, si le sessionStorage navigateur est vide (ex: navigateur redémarré, cookie 7j encore valide),
HeimdallAuthStateProvider.GetAuthenticationStateAsyncretombe sur le chemin cookie →AuthState.LoginFromPrincipalmetAccessToken = null(aucun JWT disponible).Observé (logs prod docker-heimdall-1)
À chaque cycle d'auto-refresh (15 s) de la page Agents :
Toutes les requêtes du circuit (HttpContext null → pas de cookie propagé, AccessToken null → pas de Bearer) partent sans aucune authentification → 302 systématique → échec silencieux → l'auto-refresh des métriques ne fonctionne jamais après un reload.
Attendu
Correctif
.Heimdall.Authlors de la restauration SSR (HttpContext présent) et la stocker dansAuthStateSameOriginHttpMessageHandler: propager ce cookie sur les requêtes du circuit (HttpContext null) quand aucun Bearer n'est présentCritères d'acceptation
Corrigé par
37e2fe4. AuthState.AuthCookie capturé lors de la restauration SSR (LoginFromPrincipal) et propagé par SameOriginHttpMessageHandler sur les requêtes du circuit (HttpContext null, pas de Bearer) → plus de 302 en boucle sur les auto-refresh après F5. Purge du cookie au login/logout. Tests : SameOriginHttpMessageHandlerTests + AuthStateTests.