feat: 가입정보 변경·비밀번호 재인증 API + 백엔드 단위테스트·CI 게이트

- POST /auth/verify-password, PUT /auth/profile(세션 표시 이름 동기화)
- MemberMapper.updateProfile, AuthSessionMapper.updateName
- 단위테스트(24): CardNotificationParser(8), AuthService(16, Mockito)
- CI(.gitea): 테스트 리포트 아티팩트 업로드(clean build가 곧 테스트 게이트)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ByungCheol
2026-06-06 14:08:01 +09:00
co-authored by Claude Opus 4.8
parent 5e2bdae37d
commit e592c174bf
11 changed files with 527 additions and 0 deletions
@@ -74,4 +74,22 @@ public class AuthController {
authService.changePassword(current.getId(), req);
return ResponseEntity.noContent().build();
}
/** 가입정보 변경 진입 전 비밀번호 재인증 */
@PostMapping("/verify-password")
public ResponseEntity<Void> verifyPassword(
@Valid @RequestBody com.sb.web.auth.dto.PasswordVerifyRequest req,
@RequestAttribute(AuthInterceptor.CURRENT_MEMBER) SessionUser current) {
authService.verifyPassword(current.getId(), req.getPassword());
return ResponseEntity.noContent().build();
}
/** 가입정보(이름/이메일) 변경 */
@PutMapping("/profile")
public MemberResponse updateProfile(
@Valid @RequestBody com.sb.web.auth.dto.ProfileUpdateRequest req,
@RequestAttribute(AuthInterceptor.CURRENT_MEMBER) SessionUser current,
HttpServletRequest request) {
return authService.updateProfile(current.getId(), AuthInterceptor.resolveToken(request), req);
}
}