Aller au contenu

PD-239 — Expression de besoin

Contexte

L'application mobile ProbatioVault (PD-106) implémente un écran Settings permettant à l'utilisateur de changer son mot de passe. Le code mobile est prêt mais l'endpoint backend POST /user/password/change n'existe pas.

Problème

Actuellement, l'utilisateur ne peut pas changer son mot de passe depuis l'application mobile car le backend ne fournit pas d'endpoint dédié.

Besoin

Implémenter l'endpoint POST /user/password/change permettant à un utilisateur authentifié de modifier son mot de passe après re-authentification.

Contraintes

  • Authentification JWT obligatoire.
  • Re-authentification obligatoire (reauth token PD-238) avant exécution.
  • Validation de l'ancien mot de passe.
  • Validation du nouveau mot de passe selon la politique de complexité.
  • Invalidation de toutes les sessions après changement réussi.
  • Format d'erreur aligné sur le contrat PD-106 : {error: "ERR-XXX-*", message: "..."}.
  • Délégation à Keycloak Admin API pour le changement effectif.

Critères de succès

  • L'endpoint POST /user/password/change est fonctionnel.
  • L'ancien mot de passe est vérifié avant modification.
  • Le nouveau mot de passe respecte la politique de complexité Keycloak.
  • Les sessions existantes sont invalidées après changement.
  • Les erreurs sont retournées avec des codes exploitables.
  • Les tests d'intégration PD-106 mobile passent.

Dépendances

  • PD-238 (re-authentification) — DONE
  • PD-26 (Keycloak OIDC) — DONE
  • PD-106 (mobile, consommateur) — EN ATTENTE de ce endpoint

Références

  • Epic : PD-182 AUTH
  • Consommateur : PD-106-specification.md (F-106-05, INV-106-12, CA-106-11, CA-106-12)
  • JIRA : PD-239