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/changeest 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