Skip to content

Commit 3c7ee88

Browse files
authored
Merge pull request #30 from MT-TEAM-Org/feat/PH-84
Feat/ph 84 회원가입 시 리프레시 토큰 관련 이슈 수정
2 parents a2f15cf + 4e6272d commit 3c7ee88

File tree

18 files changed

+48
-51
lines changed

18 files changed

+48
-51
lines changed

src/main/java/org/myteam/server/auth/controller/ReIssueController.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import java.nio.charset.StandardCharsets;
1616

1717
import static org.myteam.server.global.exception.ErrorCode.INTERNAL_SERVER_ERROR;
18-
import static org.myteam.server.global.security.jwt.JwtProvider.TOKEN_PREFIX;
18+
import static org.myteam.server.global.security.jwt.JwtProvider.*;
1919
import static org.myteam.server.util.cookie.CookieUtil.createCookie;
2020

2121
/**
@@ -25,8 +25,6 @@
2525
@RestController
2626
public class ReIssueController {
2727
private final ReIssueService reIssueService;
28-
private static final String ACCESS_TOKEN_KEY = "Authorization";
29-
private static final String REFRESH_TOKEN_KEY = "X-Refresh-Token";
3028
public final static String TOKEN_REISSUE_PATH = "/reissue";
3129
public final static String LOGOUT_PATH = "/logout";
3230

@@ -44,7 +42,7 @@ public ResponseEntity<?> reissue(HttpServletRequest request, HttpServletResponse
4442
Tokens tokens = reIssueService.reissueTokens(request);
4543

4644
// Access Token 응답 헤더 추가
47-
response.addHeader(ACCESS_TOKEN_KEY, TOKEN_PREFIX + tokens.getAccessToken());
45+
response.addHeader(HEADER_AUTHORIZATION, TOKEN_PREFIX + tokens.getAccessToken());
4846

4947
// Refresh Token 쿠키 추가
5048
response.addCookie(createCookie(

src/main/java/org/myteam/server/auth/service/ReIssueService.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,15 @@
2020
import java.util.UUID;
2121

2222
import static org.myteam.server.global.exception.ErrorCode.*;
23-
import static org.myteam.server.global.security.jwt.JwtProvider.TOKEN_CATEGORY_ACCESS;
24-
import static org.myteam.server.global.security.jwt.JwtProvider.TOKEN_CATEGORY_REFRESH;
25-
import static org.myteam.server.util.cookie.CookieUtil.getCookie;
23+
import static org.myteam.server.global.security.jwt.JwtProvider.*;
24+
import static org.myteam.server.global.util.cookie.CookieUtil.getCookie;
2625

2726
@Slf4j
2827
@Service
2928
@RequiredArgsConstructor
3029
public class ReIssueService {
3130
private final JwtProvider jwtProvider;
3231
private final RefreshJpaRepository refreshJpaRepository;
33-
private static final String REFRESH_TOKEN_KEY = "X-Refresh-Token";
3432

3533
/**
3634
* Refresh Token 검증

src/main/java/org/myteam/server/global/security/config/SecurityConfig.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
3636

3737
import static org.myteam.server.auth.controller.ReIssueController.TOKEN_REISSUE_PATH;
38+
import static org.myteam.server.global.security.jwt.JwtProvider.HEADER_AUTHORIZATION;
39+
import static org.myteam.server.global.security.jwt.JwtProvider.REFRESH_TOKEN_KEY;
3840

3941
@Slf4j
4042
@Configuration
@@ -168,8 +170,8 @@ public CorsConfigurationSource configurationSource() {
168170
configuration.addAllowedMethod("*");
169171
configuration.addAllowedOrigin(frontUrl); // TODO_ 추후 변경 해야함 배포시
170172
configuration.setAllowCredentials(true);
171-
configuration.addExposedHeader("Authorization");
172-
configuration.addExposedHeader("X-Refresh-Token");
173+
configuration.addExposedHeader(HEADER_AUTHORIZATION);
174+
configuration.addExposedHeader(REFRESH_TOKEN_KEY);
173175
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
174176
source.registerCorsConfiguration("/**", configuration);
175177
return source;

src/main/java/org/myteam/server/global/security/filter/JwtAuthenticationFilter.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,12 @@
2727

2828
import static org.myteam.server.auth.controller.ReIssueController.LOGOUT_PATH;
2929
import static org.myteam.server.auth.controller.ReIssueController.TOKEN_REISSUE_PATH;
30-
import static org.myteam.server.global.security.jwt.JwtProvider.TOKEN_CATEGORY_ACCESS;
31-
import static org.myteam.server.global.security.jwt.JwtProvider.TOKEN_CATEGORY_REFRESH;
30+
import static org.myteam.server.global.security.jwt.JwtProvider.*;
3231
import static org.myteam.server.member.domain.MemberStatus.*;
3332
import static org.myteam.server.util.cookie.CookieUtil.createCookie;
3433

3534
@Slf4j
3635
public class JwtAuthenticationFilter extends UsernamePasswordAuthenticationFilter {
37-
private static final String ACCESS_TOKEN_KEY = "Authorization";
38-
private static final String REFRESH_TOKEN_KEY = "X-Refresh-Token";
3936
private final AuthenticationManager authenticationManager;
4037
private final JwtProvider jwtProvider;
4138
private final RefreshJpaRepository refreshJpaRepository;
@@ -91,7 +88,7 @@ protected void successfulAuthentication(HttpServletRequest request, HttpServletR
9188
log.warn("PENDING 상태인 경우 로그인이 불가능합니다");
9289
// X-Refresh-Token
9390
String refreshToken = jwtProvider.generateToken(TOKEN_CATEGORY_REFRESH, Duration.ofHours(24), publicId, auth.getAuthority(), status);
94-
String cookieValue = URLEncoder.encode("Bearer " + refreshToken, StandardCharsets.UTF_8);
91+
String cookieValue = URLEncoder.encode(TOKEN_PREFIX + refreshToken, StandardCharsets.UTF_8);
9592

9693
response.addCookie(createCookie(REFRESH_TOKEN_KEY, cookieValue, TOKEN_REISSUE_PATH, 5 * 60, true));
9794
sendErrorResponse(response, HttpStatus.LOCKED, "PENDING 상태인 경우 로그인이 불가능합니다");
@@ -114,7 +111,7 @@ protected void successfulAuthentication(HttpServletRequest request, HttpServletR
114111
// X-Refresh-Token
115112
String refreshToken = jwtProvider.generateToken(TOKEN_CATEGORY_REFRESH, Duration.ofHours(24), publicId, role, status);
116113
// URLEncoder.encode: 공백을 %2B 로 처리
117-
String cookieValue = URLEncoder.encode("Bearer " + refreshToken, StandardCharsets.UTF_8);
114+
String cookieValue = URLEncoder.encode(TOKEN_PREFIX + refreshToken, StandardCharsets.UTF_8);
118115

119116
log.debug("print accessToken: {}", accessToken);
120117
log.debug("print refreshToken: {}", refreshToken);
@@ -123,7 +120,7 @@ protected void successfulAuthentication(HttpServletRequest request, HttpServletR
123120
//Refresh 토큰 저장
124121
addRefreshEntity(publicId, refreshToken, Duration.ofHours(24));
125122

126-
response.addHeader(ACCESS_TOKEN_KEY, "Bearer " + accessToken);
123+
response.addHeader(HEADER_AUTHORIZATION, TOKEN_PREFIX + accessToken);
127124
response.addCookie(createCookie(REFRESH_TOKEN_KEY, cookieValue, TOKEN_REISSUE_PATH, 24 * 60 * 60, true));
128125
response.addCookie(createCookie(REFRESH_TOKEN_KEY, cookieValue, LOGOUT_PATH, 24 * 60 * 60, true));
129126
response.setStatus(HttpStatus.OK.value());

src/main/java/org/myteam/server/global/security/filter/TokenAuthenticationFilter.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,12 @@
2222
import org.springframework.security.core.context.SecurityContextHolder;
2323
import org.springframework.web.filter.OncePerRequestFilter;
2424

25-
import static org.myteam.server.global.exception.ErrorCode.*;
25+
import static org.myteam.server.global.security.jwt.JwtProvider.HEADER_AUTHORIZATION;
2626
import static org.myteam.server.global.security.jwt.JwtProvider.TOKEN_CATEGORY_ACCESS;
2727

2828
@Slf4j
2929
@RequiredArgsConstructor
3030
public class TokenAuthenticationFilter extends OncePerRequestFilter {
31-
private final static String HEADER_AUTHORIZATION = "Authorization";
3231
private final JwtProvider jwtProvider;
3332

3433
@Override

src/main/java/org/myteam/server/global/security/handler/LogoutSuccessHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
import java.util.UUID;
1919

2020
import static org.myteam.server.global.exception.ErrorCode.*;
21+
import static org.myteam.server.global.security.jwt.JwtProvider.REFRESH_TOKEN_KEY;
2122
import static org.myteam.server.global.security.jwt.JwtProvider.TOKEN_CATEGORY_REFRESH;
2223
import static org.springframework.http.HttpMethod.POST;
2324

2425
public class LogoutSuccessHandler implements org.springframework.security.web.authentication.logout.LogoutSuccessHandler {
25-
private static final String REFRESH_TOKEN_KEY = "X-Refresh-Token";
2626
private Logger logger = LoggerFactory.getLogger(this.getClass());
2727
final JwtProvider jwtProvider;
2828
final RefreshJpaRepository refreshJpaRepository;

src/main/java/org/myteam/server/global/security/jwt/JwtProvider.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class JwtProvider {
2323
public final static String TOKEN_CATEGORY_ACCESS = "access"; // 어세스 토큰 카테고리
2424
public final static String TOKEN_CATEGORY_REFRESH = "refresh"; // 리프레시 토큰 카테고리
2525
public final static String HEADER_AUTHORIZATION = "Authorization";
26+
public static final String REFRESH_TOKEN_KEY = "X-Refresh-Token";
2627
public final static String TOKEN_PREFIX = "Bearer ";
2728
private final JwtProperties jwtProperties;
2829

src/main/java/org/myteam/server/util/cookie/CookieUtil.java renamed to src/main/java/org/myteam/server/global/util/cookie/CookieUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.myteam.server.util.cookie;
1+
package org.myteam.server.global.util.cookie;
22

33
import jakarta.servlet.http.Cookie;
44
import jakarta.servlet.http.HttpServletRequest;

src/main/java/org/myteam/server/util/date/DateFormatUtil.java renamed to src/main/java/org/myteam/server/global/util/date/DateFormatUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.myteam.server.util.date;
1+
package org.myteam.server.global.util.date;
22

33
import java.sql.Date;
44
import java.sql.Time;

src/main/java/org/myteam/server/util/file/MediaUtils.java renamed to src/main/java/org/myteam/server/global/util/file/MediaUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.myteam.server.util.file;
1+
package org.myteam.server.global.util.file;
22

33
import org.springframework.http.MediaType;
44

0 commit comments

Comments
 (0)