Spring/SpringCloudGateway
-
HttpClientCustomizerSpring Cloud Gateway의 HttpClientCustomizer 인터페이스는 gateway에서 사용하는 HTTP 클라이언트를 커스터마이징 할 수 있게 해 준다Spring Cloud Gateway에서는 내부적으로 reactor.netty.http.client.HttpClient를 사용하여 백엔드 서비스로 요청을 보낸다.HttpClient를 커스터마이징하고 싶을 때 사용하는 것이 바로 HttpClientCustomizer 인터페이스이다.하나의 메서드인 customize를 제공하며, 이 메서드는 HttpClient 객체를 매개변수로 받아 수정된 버전을 반환한다.타임아웃 설정, 커스텀 헤더 추가, 특정 기능 활성화 등 HTTP 클라이언트에 대해 특별한 설정이나 동..
[SpringCloudGateway] HttpClientCustomizer&RouteDefinitionLocatorHttpClientCustomizerSpring Cloud Gateway의 HttpClientCustomizer 인터페이스는 gateway에서 사용하는 HTTP 클라이언트를 커스터마이징 할 수 있게 해 준다Spring Cloud Gateway에서는 내부적으로 reactor.netty.http.client.HttpClient를 사용하여 백엔드 서비스로 요청을 보낸다.HttpClient를 커스터마이징하고 싶을 때 사용하는 것이 바로 HttpClientCustomizer 인터페이스이다.하나의 메서드인 customize를 제공하며, 이 메서드는 HttpClient 객체를 매개변수로 받아 수정된 버전을 반환한다.타임아웃 설정, 커스텀 헤더 추가, 특정 기능 활성화 등 HTTP 클라이언트에 대해 특별한 설정이나 동..
2025.06.10 -
Spring-cloud-gateay에서 아래의 플로우로 호출이 존재할 때 Client - spring-cloud-gateway -> backendbackend로부터 온 응답을 확인하고 싶은 경우에 어떻게 response 내용을 조회할 수 있는지 알아보자.기본으로 제공되는 필터들 중에 response를 조회하거나 조작하는 필터는 두 가지를 발견할 수 있었다. ModifyRequestBody GatewayFilter FactoryThe Netty Write Response Filter각각의 필터에서 응답을 읽는 부분을 참고해 보면ModifyRequestBody GatewayFilter Factory에서는 ServerHttpResponseDecorator를 이용해 exchange의 응답값을 읽어 들인다. 간..
[SpringCloudGateway] Response Body 확인/수정Spring-cloud-gateay에서 아래의 플로우로 호출이 존재할 때 Client - spring-cloud-gateway -> backendbackend로부터 온 응답을 확인하고 싶은 경우에 어떻게 response 내용을 조회할 수 있는지 알아보자.기본으로 제공되는 필터들 중에 response를 조회하거나 조작하는 필터는 두 가지를 발견할 수 있었다. ModifyRequestBody GatewayFilter FactoryThe Netty Write Response Filter각각의 필터에서 응답을 읽는 부분을 참고해 보면ModifyRequestBody GatewayFilter Factory에서는 ServerHttpResponseDecorator를 이용해 exchange의 응답값을 읽어 들인다. 간..
2025.06.06 -
MVC에서는 @ControllerAdvice를 통해서 에러를 핸들링한다.Reactive에서는 다른 방식의 에러 핸들링 방법을 제공하는데 이를 Spring Cloud Gateway에 어떻게 적용하는지 알아보자. ErrorWebExceptionHandlerSpring cloud gateway에서 발생한 모든 예외를 처리할 수 있는 전역 핸들러 인터페이스WebFlux의 최하단 필터 체인에서 동작하며, DispatcherHandler가 처리하지 못한 에러를 이 핸들러가 최종적으로 받는다.에러 내역 로그를 남기거가, 에러 응답을 포맷팅 해서 주는 작업 등을 할 수 있다. ErrorWebExceptionHandler에서는 handle을 구현해야 하는데 handle 메서드에서는 exchange에 response를 직..
[SpringCloudGateway] ExceptionHandlerMVC에서는 @ControllerAdvice를 통해서 에러를 핸들링한다.Reactive에서는 다른 방식의 에러 핸들링 방법을 제공하는데 이를 Spring Cloud Gateway에 어떻게 적용하는지 알아보자. ErrorWebExceptionHandlerSpring cloud gateway에서 발생한 모든 예외를 처리할 수 있는 전역 핸들러 인터페이스WebFlux의 최하단 필터 체인에서 동작하며, DispatcherHandler가 처리하지 못한 에러를 이 핸들러가 최종적으로 받는다.에러 내역 로그를 남기거가, 에러 응답을 포맷팅 해서 주는 작업 등을 할 수 있다. ErrorWebExceptionHandler에서는 handle을 구현해야 하는데 handle 메서드에서는 exchange에 response를 직..
2025.06.02 -
HttpHeadersFilters Spring Cloud Gateway에서 Backend로 요청을 보내기 전에 HTTP 헤더를 조작하거나 필터링하는 역할NettyRoutingFilter와 같은 Routing 단계 이전에 실행된다Forwarded Headers FilterGateway에서 Forwarded 헤더를 생성하여 Backend로 전달Forwarded 헤더에 포함된 정보for: 요청을 보낸 클라이언트의 IP 주소Host: 원본 요청의 Host 값Scheme: HTTP/HTTPS와 같은 프로토콜Port: 요청이 수신된 포트Forwarded: for=192.168.1.10;host=myapp.com;proto=https RemoveHopByHop Headers Filter**RFC 2616 (IETF ..
[SpringCloudGateway] HttpHeaders FilterHttpHeadersFilters Spring Cloud Gateway에서 Backend로 요청을 보내기 전에 HTTP 헤더를 조작하거나 필터링하는 역할NettyRoutingFilter와 같은 Routing 단계 이전에 실행된다Forwarded Headers FilterGateway에서 Forwarded 헤더를 생성하여 Backend로 전달Forwarded 헤더에 포함된 정보for: 요청을 보낸 클라이언트의 IP 주소Host: 원본 요청의 Host 값Scheme: HTTP/HTTPS와 같은 프로토콜Port: 요청이 수신된 포트Forwarded: for=192.168.1.10;host=myapp.com;proto=https RemoveHopByHop Headers Filter**RFC 2616 (IETF ..
2025.05.26