Skip to content

Commit 5b09567

Browse files
committed
fix: 테스트 환경에서 RateLimitFilter로 인한 컨텍스트 오류 및 429 응답 수정
1 parent 3ad7b35 commit 5b09567

2 files changed

Lines changed: 20 additions & 13 deletions

File tree

src/test/java/com/Rootin/domain/garden/service/ExperienceServiceTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ void applyWateringDuplicateFail() {
332332
experienceService.applyWatering(testUser.getId(), testPot, 500, testTil.getId());
333333
});
334334

335-
assertThat(exception.getStatus()).isEqualTo(org.springframework.http.HttpStatus.BAD_REQUEST);
335+
assertThat(exception.getStatus()).isEqualTo(org.springframework.http.HttpStatus.CONFLICT);
336336
assertThat(exception.getMessage()).contains("이미 물주기가 완료된 TIL입니다.");
337337
}
338338

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,38 @@
11
package com.Rootin.global.config;
22

3+
import com.Rootin.global.filter.RateLimitFilter;
4+
import com.fasterxml.jackson.databind.ObjectMapper;
5+
import jakarta.servlet.http.HttpServletRequest;
36
import org.springframework.boot.test.context.TestConfiguration;
47
import org.springframework.context.annotation.Bean;
8+
import org.springframework.context.annotation.Import;
9+
import org.springframework.context.annotation.Primary;
510
import org.springframework.core.annotation.Order;
611
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
712
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
813
import org.springframework.security.web.SecurityFilterChain;
914

10-
/**
11-
* 테스트 전용 Security 설정
12-
*
13-
* 테스트 환경에서는 인증/인가를 검사하지 않도록 모든 요청을 permitAll 처리한다.
14-
* @WebMvcTest 사용 시 @Import(TestSecurityConfig.class)로 가져와서 사용한다.
15-
*
16-
* 사용 예시:
17-
* @WebMvcTest(controllers = SomeController.class)
18-
* @Import(TestSecurityConfig.class)
19-
* class SomeControllerTest { ... }
20-
*/
15+
@Import(RateLimitConfig.class)
2116
@TestConfiguration
2217
public class TestSecurityConfig {
18+
2319
@Bean
24-
@Order(0) // 실제 SecurityConfig보다 우선 적용
20+
@Order(0)
2521
public SecurityFilterChain testFilterChain(HttpSecurity http) throws Exception {
2622
http
2723
.csrf(AbstractHttpConfigurer::disable)
2824
.authorizeHttpRequests(auth -> auth.anyRequest().permitAll());
2925
return http.build();
3026
}
27+
28+
@Bean
29+
@Primary
30+
public RateLimitFilter rateLimitFilter(RateLimitConfig rateLimitConfig, ObjectMapper objectMapper) {
31+
return new RateLimitFilter(rateLimitConfig, objectMapper) {
32+
@Override
33+
protected boolean shouldNotFilter(HttpServletRequest request) {
34+
return true;
35+
}
36+
};
37+
}
3138
}

0 commit comments

Comments
 (0)