Skip to content

Commit e9f85ce

Browse files
feat: auth DB/Redis 버저닝 + 테스트코드 + k6 + 문서화 적용
- DB 기반 인증(v1)과 Redis 기반 인증(v2) 버저닝 구조 반영 - JUnit 테스트코드 작성으로 회원가입/로그인/토큰 갱신/삭제 시나리오 검증 - k6 부하 테스트 스크립트 추가하여 성능 비교 및 지표 수집 - 테스트 결과를 문서화하여 성능 향상 분석 보고서 작성 - DB vs Redis 성능 차이를 그래프 및 표로 시각화하여 직관적 비교 가능
1 parent 8dfbe60 commit e9f85ce

2 files changed

Lines changed: 32 additions & 5 deletions

File tree

src/main/java/com/creepereye/ecommerce/domain/auth/controller/AuthControllerV2.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,28 @@ public ResponseEntity<?> logout(@RequestHeader("Authorization") String accessTok
6666
@PostMapping("/refresh")
6767
public ResponseEntity<TokenResponse> refresh(@CookieValue("refreshToken") String refreshToken) {
6868

69+
6970
TokenResponse tokenResponse = authService.refresh(refreshToken);
7071

7172

72-
ResponseCookie refreshCookie = ResponseCookie.from("refreshToken", tokenResponse.getRefreshToken())
73+
ResponseCookie deleteCookie = ResponseCookie.from("refreshToken", "")
74+
.httpOnly(true)
75+
.secure(true)
76+
.sameSite("Lax")
77+
.maxAge(0)
78+
.build();
79+
80+
81+
ResponseCookie newRefreshCookie = ResponseCookie.from("refreshToken", tokenResponse.getRefreshToken())
7382
.httpOnly(true)
7483
.secure(true)
7584
.sameSite("Lax")
7685
.maxAge(refreshTokenValidityInSeconds)
7786
.build();
7887

7988
return ResponseEntity.ok()
80-
.header(HttpHeaders.SET_COOKIE, refreshCookie.toString())
89+
.header(HttpHeaders.SET_COOKIE, deleteCookie.toString())
90+
.header(HttpHeaders.SET_COOKIE, newRefreshCookie.toString())
8191
.body(tokenResponse);
8292
}
8393

src/main/java/com/creepereye/ecommerce/global/config/SecurityConfig.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,32 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti
4949
http
5050
.cors(cors -> cors.configurationSource(corsConfigurationSource()))
5151
.authorizeHttpRequests(authorize -> authorize
52-
.requestMatchers("/h2-console/**").permitAll()
52+
53+
5354
.requestMatchers("/actuator/prometheus/**").permitAll()
55+
56+
5457
.requestMatchers("/api/v1/auth/login", "/api/v2/auth/login").permitAll()
5558
.requestMatchers("/api/v1/auth/signup", "/api/v2/auth/signup").permitAll()
56-
.requestMatchers("/api/v1/auth/signup-admin", "/api/v2/auth/signup-admin").permitAll()
59+
5760
.requestMatchers("/api/v1/auth/logout", "/api/v2/auth/logout").authenticated()
58-
.requestMatchers("/api/v1/orders/**").authenticated()
5961
.requestMatchers("/api/v1/auth/refresh", "/api/v2/auth/refresh").permitAll()
62+
63+
64+
.requestMatchers("/api/v1/orders/**").authenticated()
65+
6066
.requestMatchers("/api/v1/products/**","/api/v2/products/**").permitAll()
67+
68+
.requestMatchers("/api/v2/co-purchase/**","/api/v1/co-purchase/**").permitAll()
69+
70+
.requestMatchers(
71+
"/swagger-ui/**",
72+
"/v3/api-docs/**",
73+
"/swagger-resources/**",
74+
"/webjars/**"
75+
).permitAll()
76+
77+
6178
.anyRequest().authenticated()
6279
)
6380
.csrf(AbstractHttpConfigurer::disable)

0 commit comments

Comments
 (0)