Spring Cloud Gateway안에서 일어나는 작업을 확대해보면 Gateway Handler Mapping에서 요청 정보를 받고 Predicate에서 요청에 대한 사전 조건에 의해 분기 처리 역할을 해준다.
@Configuration 어노테이션을 통해 등록할 수 있으며 gateway에 연결될 서비스들을 yml과 동일하게 등록할 수 있다.
route와 filter 메소드를 람다식을 사용해서 등록할 수 있으며, 상단 예제에서는 요청 헤더와 응답 헤더에 각각 헤더값을 추가하는 filter를 추가하였다.
yml 파일 등록
처음에 라우팅 설정한 이후 filter 필드를 추가하여 gateway를 설정할 수 있다.
해당 예시도 java 코드와 동일하게 요청, 응답에 대해 헤더값을 추가하는 Filter를 추가하였다.
사용자가 권한을 인증하거나, 특정 작업에 대한 로깅 처리 등을 목적으로 필터를 생성하여 등록할 수 있다.
Custom Filter를 생성하기 위해서는 AbstractGatewatFilterFactory를 상속 받아서 Class를 생성 후 Bean으로 등록해야 한다.