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

Abierto Apto para principiantes
#14,465 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript

Línea de trabajo

Comienza en ui/src/api/index.js en la implementación del logout y luego inspecciona fetchData() en el componente Login.vue al que hace referencia el issue. Reproduce el logout con un IdP SAML configurado y comprueba si la solicitud pendiente listIdps se cancela debido al token compartido. El cambio estará terminado cuando la cancelación del logout ya no borre idps antes de que la página de login los obtenga y la pestaña «Single sign-on» siga habilitada sin recargar la página.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Java
Estrellas
3.1k
Forks
1.4k
Merge medio
10 d 9 h
PR fusionados (30 d)
20

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/cloudstack

Todos los issues de apache/cloudstack

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.