+
Password must contain:
+
• At least 8 characters
+
• An uppercase letter (A-Z)
+
• A lowercase letter (a-z)
+
• A number (0-9)
+
• A special character
+
+ ```
+
+**Estimated Effort:** 1-2 hours (much less than creating from scratch)
+
+**Note:** This is a UX enhancement and not required for functionality. The backend validation already enforces all rules.
+
+---
+
+## Testing Checklist
+
+After making the required changes, test these scenarios:
+
+### Password Reset Flow (Critical)
+- [ ] Request password reset email
+- [ ] Click link in email (opens forgot-password-change.html)
+- [ ] Enter weak password (too short)
+ - Expected: Error message about password requirements
+- [ ] Enter password that matches old password
+ - Expected: Error message about password history
+- [ ] Enter valid strong password
+ - Expected: Success message, redirected to login
+- [ ] Log in with new password
+ - Expected: Login succeeds
+- [ ] Try to reuse the reset token
+ - Expected: Error - token already used/invalid
+
+### Update Password Flow (Should Continue Working)
+- [ ] Log in as existing user
+- [ ] Navigate to update-password page
+- [ ] Enter wrong old password
+ - Expected: Error "The old password is incorrect" (error code 1)
+- [ ] Enter correct old password but weak new password
+ - Expected: Error about password requirements (error code 2)
+- [ ] Enter correct old password and password from history
+ - Expected: Error about password reuse (error code 2)
+- [ ] Enter correct old password and valid new password
+ - Expected: Success message
+- [ ] Log out and log in with new password
+ - Expected: Login succeeds
+
+### Registration Flow (Should Continue Working)
+- [ ] Register new user with weak password
+ - Expected: Error message about password requirements
+- [ ] Register new user with strong password
+ - Expected: Success, email sent (if verification enabled)
+
+---
+
+## Implementation Priority
+
+### Phase 1: Critical Fix (Must Do Now)
+1. **Fix password reset form action** (5 minutes)
+ - Change form action to `/user/savePassword`
+ - Add `name="confirmPassword"` to match password field
+ - Test password reset flow end-to-end
+
+### Phase 2: Optional Consistency (Do Later)
+2. **Fix field name inconsistency** (5 minutes)
+ - Update `update-password.js` to use `oldPassword` instead of `currentPassword`
+ - Test update password flow
+
+### Phase 3: UX Enhancement (Nice to Have)
+3. **Reuse password strength meter on other forms** (1-2 hours)
+ - Extract existing meter code to shared module
+ - Add to password reset and update password forms
+ - Note: Registration already has this implemented
+
+---
+
+## Code Changes Summary
+
+### Required Changes (1 file, 2 lines)
+```diff
+File: SpringUserFrameworkDemoApp/src/main/resources/templates/user/forgot-password-change.html
+
+-