본문 바로가기
스프링 스터디 (인프런)/API GATEWAY

Spring Cloud Gateway - Custom Filter 적용 ➀

by 백엔드 개발자 2023. 8. 24.

사용자 정의 필터를 추가해보는 것이 목표. (ex : 로그출력, 인증처리, locale 변경)

 

 

STEP6) Custom Filter - CustomFilter.java

  • 반드시 AbstractGatewayFilterFactory를 확장해서 구현한다.

     왜? ->
  • apply 메서드는 GatewayFilter를 반환해주면서 어떠한 작업을 할 것인지  정의할 수 있다.
  • 내부 내장서버를 비동기방식 netty로 사용하고 있기 때문에, servletHttpRequest대신 serverHttpRequest를 이용한다.
  • spring5의 webflux를 이용해서 서버를 구축할 시, 반환값으로서 Mono 데이터타입을 사용할 수 있다.
    발생할 수 있는 데이터 타입이 1개라는 의미이다.

 

 

 

STEP6) Custom Filter - application.yml

기존에 사용했던 헤더값 조작하는 용도의 필터를 제거하고

사용할 커스텀필터를 yml파일에 등록해서 사용해볼 것이다.

 

이유 : 기존에 사용했던 방법대로만 작동하는 것이 아닌, 더 다양하게 사용자 정의대로 필터를 구성해보기 위해서.

 

 

 

 

STEP6) Custom Filter - FirstServiceController.java, SecondServiceController.java

커스텀 필터의 동작을 확인해보기 위해서, check라는 메서드를 이용.