Skip to content

Commit 379a774

Browse files
committed
fix(User): 트랜잭션 분리 에러 및 principal 변환 버그 픽스
- 트랜잭션 분리가 정상적으로 동작하지 않았음 -> 이유에 대해 공부 필요 - authentication의 Principal 속성을 사용했어야 했는데 실수로 token자체를 사용함
1 parent 1707a39 commit 379a774

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

src/main/java/com/prgrms/mukvengers/domain/user/service/DefaultUserService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public class DefaultUserService implements UserService {
2626

2727
/* [회원 인증 정보 조회 및 저장] 등록된 유저 정보 찾아서 제공하고 없으면 등록합니다. */
2828
@Override
29+
@Transactional
2930
public AuthUserInfo getOrRegisterUser(OAuthUserInfo oauthUserInfo) {
3031
User user = userRepository
3132
.findByUserIdByProviderAndOauthId(oauthUserInfo.provider(), oauthUserInfo.oauthId())

src/main/java/com/prgrms/mukvengers/global/security/oauth/handler/OAuthAuthenticationSuccessHandler.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.io.IOException;
77
import java.net.URLDecoder;
88
import java.net.URLEncoder;
9+
import java.util.Arrays;
910

1011
import javax.servlet.ServletException;
1112
import javax.servlet.http.Cookie;
@@ -39,7 +40,7 @@ public class OAuthAuthenticationSuccessHandler
3940
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
4041
Authentication authentication) throws IOException, ServletException {
4142

42-
if (authentication instanceof CustomOAuth2User oauth2User) {
43+
if (authentication.getPrincipal() instanceof CustomOAuth2User oauth2User) {
4344

4445
Tokens tokens = tokenService.createTokens(oauth2User.getUserInfo());
4546

@@ -66,9 +67,9 @@ private String determineTargetUrl(HttpServletRequest request, String accessToken
6667

6768
// 문제가 발생한 영역 일단 하드 코딩해서 해결
6869
private String encodeKr(String url) {
69-
70+
log.error(url);
7071
String[] splitUrl = url.split(NAME_QUERY);
71-
72+
log.error(Arrays.toString(splitUrl));
7273
if (splitUrl.length > 1) {
7374
String name = splitUrl[1];
7475
String encodedName = URLEncoder.encode(name, UTF_8);

0 commit comments

Comments
 (0)