Skip to content

Commit c36d124

Browse files
authored
Merge pull request #334 from asowjdan/fix/member
Fix[member]:토큰 생성 로직 수정으로 인한 테스트 코드 수정
2 parents 1629f52 + 3e7cc84 commit c36d124

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

backend/src/main/java/com/ai/lawyer/domain/member/controller/MemberController.java

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,14 @@ public ResponseEntity<String> oauth2SuccessPage(Authentication authentication, H
117117

118118
if (principal instanceof Long) {
119119
memberId = (Long) principal;
120-
loginId = (String) authentication.getDetails();
120+
// Details가 Map이면 loginId 추출
121+
if (authentication.getDetails() instanceof Map) {
122+
@SuppressWarnings("unchecked")
123+
Map<String, String> details = (Map<String, String>) authentication.getDetails();
124+
loginId = details.get("loginId");
125+
} else if (authentication.getDetails() instanceof String) {
126+
loginId = (String) authentication.getDetails();
127+
}
121128
} else if (principal instanceof PrincipalDetails principalDetails) {
122129
com.ai.lawyer.domain.member.entity.MemberAdapter member = principalDetails.getMember();
123130
loginId = member.getLoginId();
@@ -203,10 +210,17 @@ public ResponseEntity<LogoutResponse> logout(Authentication authentication, Http
203210

204211
if (authentication != null) {
205212
// 1순위: authentication.getDetails()에서 loginId 추출 (JWT 필터가 설정)
206-
if (authentication.getDetails() instanceof String) {
207-
loginId = (String) authentication.getDetails();
213+
if (authentication.getDetails() instanceof Map) {
214+
@SuppressWarnings("unchecked")
215+
Map<String, String> details = (Map<String, String>) authentication.getDetails();
216+
loginId = details.get("loginId");
208217
log.info("JWT Details로 로그아웃: loginId={}", loginId);
209218
}
219+
// 1-2순위: 이전 버전 호환성 (String으로 저장된 경우)
220+
else if (authentication.getDetails() instanceof String) {
221+
loginId = (String) authentication.getDetails();
222+
log.info("JWT Details(legacy)로 로그아웃: loginId={}", loginId);
223+
}
210224
// 2순위: PrincipalDetails (OAuth2 직접 로그인)
211225
else if (authentication.getPrincipal() instanceof PrincipalDetails principalDetails) {
212226
com.ai.lawyer.domain.member.entity.MemberAdapter member = principalDetails.getMember();
@@ -257,10 +271,17 @@ public ResponseEntity<Map<String, Object>> withdraw(Authentication authenticatio
257271

258272
if (authentication != null) {
259273
// 1순위: authentication.getDetails()에서 loginId 추출 (JWT 필터가 설정)
260-
if (authentication.getDetails() instanceof String) {
261-
loginId = (String) authentication.getDetails();
274+
if (authentication.getDetails() instanceof Map) {
275+
@SuppressWarnings("unchecked")
276+
Map<String, String> details = (Map<String, String>) authentication.getDetails();
277+
loginId = details.get("loginId");
262278
log.info("JWT Details로 회원 탈퇴: loginId={}", loginId);
263279
}
280+
// 1-2순위: 이전 버전 호환성 (String으로 저장된 경우)
281+
else if (authentication.getDetails() instanceof String) {
282+
loginId = (String) authentication.getDetails();
283+
log.info("JWT Details(legacy)로 회원 탈퇴: loginId={}", loginId);
284+
}
264285
// 2순위: PrincipalDetails (OAuth2 직접 로그인)
265286
else if (authentication.getPrincipal() instanceof PrincipalDetails principalDetails) {
266287
com.ai.lawyer.domain.member.entity.MemberAdapter member = principalDetails.getMember();

0 commit comments

Comments
 (0)