4.23.0.0 UI: SAML "Single sign-on" tab disabled after logout because listIdps is cancelled

Aperta Adatta ai principianti
#14,465 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript

Direzione di ricerca

Inizia in ui/src/api/index.js nell’implementazione del logout, poi esamina fetchData() nel componente Login.vue a cui fa riferimento l’issue. Riproduci il logout con un IdP SAML configurato e verifica se la richiesta listIdps in sospeso viene annullata dal token condiviso. La modifica è completa quando l’annullamento del logout non svuota più idps prima che la pagina di login li recuperi e la scheda «Single sign-on» rimane abilitata senza ricaricare la pagina.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug status:has-work-around
problem

With SAML2 enabled (one IdP), logging out sometimes shows the login page without the
"Single sign-on" tab (the tab is disabled because idps is empty) until the page is reloaded.

Cause in ui/src: the Logout action clears the token first, the router shows the login page and
Login.vue fetchData() calls listIdps; then api/index.js logout() finishes and calls
sourceToken.cancel(), which cancels all pending requests including listIdps. idps stays [] and the
SAML tab is :disabled="idps.length === 0".

versions

CloudStack 4.23.0.0 UI, SAML2 with Microsoft Entra ID, Chrome / Safari on macOS.

The steps to reproduce the bug
  1. Enable saml2 with one IdP.
  2. Log in (any method), then Logout from the user menu.
  3. The login page shows only "Portal login"; F5 brings the "Single sign-on" tab back.
What to do about it?

Cancel pending requests before navigating to the login page (or create a fresh cancel token
before Login.vue fetches), or retry listIdps when it was cancelled.
Our workaround: a small script that reloads the page once when the app navigates from an in-app
route to #/user/login.

Lingua principale
Java
Stelle
3.1k
Fork
1.4k
Merge medio
9g 23h
PR unite (30g)
19

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/cloudstack

Tutte le issue di apache/cloudstack

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.