-
spring cloud gateway - routing issue 기록Spring Boot 🍃 2024. 1. 13. 20:36
custom 필터를 적용하다가 겪은 이슈를 정리 🥸
1. 실행 log 확인
logging: level: org.springframework.cloud.gateway: TRACE org.springframework.http.server.reactive: DEBUG org.springframework.web.reactive: DEBUG reactor.ipc.netty: DEBUG reactor.netty: DEBUG
2. 입력받는 path에 path parameter가 있는 경우
예를 들면 ,
DELETE /withdrawal/articles
와DELETE /{userId}/articles
라는 엔드 포인트를 제공할 때
DELETE /withdrawal/articles
는 filter를 설정하지 않았고
DELETE /{userId}/articles
는 filter를 설정했다면
/withdrawal/articles
요청은/{userId}/articles
에 매칭 되어 filter가 실행된다.
이 경우
order
를 이용해 순서를 지정해주어/withdrawal/articles
가 먼저 실행되도록 한다면 해결이 가능하다.spring: application: name: gateway-server cloud: gateway: routes: # Article Server - id: article-server uri: lb://article-server order: 0 predicates: - Path=/withdrawal/articles - Method=DELETE - id: article-server uri: lb://article-server order: 1 predicates: - Path=/{userId}/articles - Method=DELETE filters: - JwtVerifyFilter
또는
Filter.java에서 path variable을 가져온 후
{userId}
값이withdrawal
인 경우 filter 로직을 타지 않도록 작성해 볼 수도 있다. (https://godekdls.github.io/Spring Cloud Gateway/route-predicate-factories/#58-the-path-route-predicate-factory )'Spring Boot 🍃' 카테고리의 다른 글
(링크) JPA - @Embedded @Embeddable 소개 (0) 2024.01.17 console로 spring boot 프로젝트의 jar 실행시 port 변경하기 (0) 2024.01.14 (링크) spring cloud gateway - global exception handling (0) 2024.01.13 spring cloud gateway 실행 로그 설정 (0) 2024.01.13 Advice에서 관리 할 Exception 모음 (0) 2023.12.28