Home session expiry maps 401 by exact error-string match (Low)
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 56/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- rust
- Domaine
- backend-api-design, observability, security
Piste de recherche
Start with home_projection_token_error in elastos/crates/elastos-server/src/api/gateway_home_runtime.rs, then read grant_bound_token_expiry in gateway_home_token.rs and RoomSessionAuthorization::validate in room_service.rs. Replace the exact message comparison with typed error handling, and log the underlying grant-store error before it is collapsed. Done when inactive or revoked grants map to 401 regardless of message wording and the underlying error is logged.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Severity: Low (fails closed; correctness and observability only)
Found in the security review of #536.
Current behavior
home_projection_token_error (elastos/crates/elastos-server/src/api/gateway_home_runtime.rs) decides 401 by exact string equality:
if err.to_string() == "home launch token auth session is not active" { 401 } else { 500 }
A future rewording of load_active_session_grant, an added .context(...), or any anyhow display change falls through to gateway_internal_error → 500. Access is still denied, but the client loses its "re-authenticate" signal and logs fill with misleading 500s.
Fix
- Use a typed error (an enum such as
HomeTokenError::SessionInactive, orerr.downcast_ref) instead of string equality. - Log the underlying error before the
map_err(|_| …)collapses ingrant_bound_token_expiry(gateway_home_token.rs) andRoomSessionAuthorization::validate(room_service.rs), so a lapsed grant is distinguishable from I/O or state corruption.
Done means
- A lapsed or revoked grant maps to 401 regardless of how the grant loader's message is worded.
- The underlying grant-store error is logged before it is collapsed to an auth failure.
- Langage dominant
- Rust
- Étoiles
- 6
- Forks
- 2
- Merge moyen
- 1 j 3 h
- PR mergées (30 j)
- 42
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de elastos/elastos-runtime
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
elastos/elastos-runtime#563 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
elastos/elastos-runtime#508 ·
Les mainteneurs répondent en général sous 1 jour
-
Documents: Markdown preview web links go through Home's confirmed link flow (#430 follow-up)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
elastos/elastos-runtime#436 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
elastos/elastos-runtime#427 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
elastos/elastos-runtime#405 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de elastos/elastos-runtime
Issues similaires
-
Panic on live viewport resize when unstyled elements exist in display: none subtreePeut-être pris @GoCoder7 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
DioxusLabs/blitz#1488 ·
Les mainteneurs répondent en général sous 1 jour
-
🏷️ good first issue enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour
-
S-Needs triage
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
vectordotdev/vrl#2042 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 1 jour