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
@@ -0,0 +1,14 @@
package com.sb.web.auth.dto;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
/**
* 비밀번호 재인증 요청. 가입정보 변경 화면 진입 전 본인 확인용.
*/
@Data
public class PasswordVerifyRequest {
@NotBlank(message = "비밀번호를 입력하세요.")
private String password;
}
@@ -0,0 +1,22 @@
package com.sb.web.auth.dto;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;
/**
* 가입정보(프로필) 변경 요청. 비밀번호 인증을 통과한 뒤 호출된다.
* 변경 대상: 이름, 이메일 (아이디/가입유형은 변경 불가).
*/
@Data
public class ProfileUpdateRequest {
@NotBlank(message = "이름을 입력하세요.")
@Size(max = 100, message = "이름은 100자 이하여야 합니다.")
private String name;
@Email(message = "이메일 형식이 올바르지 않습니다.")
@Size(max = 255, message = "이메일은 255자 이하여야 합니다.")
private String email;
}