From 1f68eb562e717a04db6350147356e71c6586604f Mon Sep 17 00:00:00 2001 From: Hangyeol Eom <122508554+ah9mon@users.noreply.github.com> Date: Tue, 15 Aug 2023 16:18:26 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20jwt=EC=9C=A0=ED=9A=A8=EC=84=B1=20?= =?UTF-8?q?=EA=B2=80=EC=82=AC=EC=8B=9C=20member=EA=B0=9D=EC=B2=B4=20?= =?UTF-8?q?=EC=97=86=EC=9D=84=20=EB=95=8C=EC=9D=98=20=EC=98=88=EC=99=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EB=B0=8F=20=ED=9A=8C=EC=9B=90=ED=83=88?= =?UTF-8?q?=ED=87=B4=20=EC=8B=9C=20authentication=EA=B0=9D=EC=B2=B4=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20(#113)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/anywayclear/config/jwt/JwtAuthorizationFilter.java | 4 ++-- .../com/anywayclear/config/oauth/CustumOAuth2UserService.java | 3 --- .../config/oauth/OAuth2AuthenticationSuccessHandler.java | 1 - src/main/java/com/anywayclear/service/MemberService.java | 1 + 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/anywayclear/config/jwt/JwtAuthorizationFilter.java b/src/main/java/com/anywayclear/config/jwt/JwtAuthorizationFilter.java index ef96047..b18c6ef 100644 --- a/src/main/java/com/anywayclear/config/jwt/JwtAuthorizationFilter.java +++ b/src/main/java/com/anywayclear/config/jwt/JwtAuthorizationFilter.java @@ -2,7 +2,6 @@ import com.anywayclear.config.JwtConfig; import com.anywayclear.entity.Member; -import com.anywayclear.exception.CustomException; import com.anywayclear.exception.ErrorResponse; import com.anywayclear.exception.ExceptionCode; import com.anywayclear.repository.MemberRepository; @@ -20,6 +19,7 @@ import org.springframework.security.oauth2.core.user.DefaultOAuth2User; import org.springframework.security.web.authentication.www.BasicAuthenticationFilter; +import javax.persistence.EntityNotFoundException; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -66,7 +66,7 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse String accessToken = request.getHeader(jwtConfig.getHeader()).replace(jwtConfig.getPrefix() + " ", ""); String userId = JWT.require(Algorithm.HMAC512(jwtConfig.getKey())).build().verify(accessToken).getClaim("userId").asString(); if (userId != null) { - Member member = memberRepository.findByUserId(userId).orElseThrow(() -> new CustomException(ExceptionCode.INVALID_MEMBER)); + Member member = memberRepository.findByUserId(userId).orElseThrow(() -> new EntityNotFoundException("해당 JWT의 member가 없습니다. userId: " + userId)); if (!member.isDeleted()) { if (checkDuplicatedLogin(userId, accessToken, response)) return; // 중복로그인 시 예외처리 processValidJwt(member); diff --git a/src/main/java/com/anywayclear/config/oauth/CustumOAuth2UserService.java b/src/main/java/com/anywayclear/config/oauth/CustumOAuth2UserService.java index 0017546..57d43f6 100644 --- a/src/main/java/com/anywayclear/config/oauth/CustumOAuth2UserService.java +++ b/src/main/java/com/anywayclear/config/oauth/CustumOAuth2UserService.java @@ -1,14 +1,11 @@ package com.anywayclear.config.oauth; -import com.anywayclear.exception.CustomException; -import com.anywayclear.exception.ExceptionCode; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import com.anywayclear.entity.Member; import com.anywayclear.repository.MemberRepository; import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService; import org.springframework.security.oauth2.client.userinfo.OAuth2UserRequest; import org.springframework.security.oauth2.core.OAuth2AuthenticationException; diff --git a/src/main/java/com/anywayclear/config/oauth/OAuth2AuthenticationSuccessHandler.java b/src/main/java/com/anywayclear/config/oauth/OAuth2AuthenticationSuccessHandler.java index 633c749..51707dc 100644 --- a/src/main/java/com/anywayclear/config/oauth/OAuth2AuthenticationSuccessHandler.java +++ b/src/main/java/com/anywayclear/config/oauth/OAuth2AuthenticationSuccessHandler.java @@ -12,7 +12,6 @@ import org.springframework.stereotype.Component; import org.springframework.web.util.UriComponentsBuilder; -import javax.persistence.criteria.CriteriaBuilder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; diff --git a/src/main/java/com/anywayclear/service/MemberService.java b/src/main/java/com/anywayclear/service/MemberService.java index 7208d8a..b37744e 100644 --- a/src/main/java/com/anywayclear/service/MemberService.java +++ b/src/main/java/com/anywayclear/service/MemberService.java @@ -59,6 +59,7 @@ public MemberResponse updateMember(String userId, MemberUpdateRequest request) { public MemberDeleteResponse deleteMember(String userId) { Member member = memberRepository.findByUserId(userId).orElseThrow(() -> new CustomException(ExceptionCode.INVALID_MEMBER)); member.setDeleted(true); + SecurityContextHolder.clearContext(); return MemberDeleteResponse.toResponse(memberRepository.save(member)); } }