[MSA] Spring Cloud Gateway - Custom Filter

LaStella·2023년 3월 26일

본 게시글은 'Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)' 강의를 공부하며 학습을 기록하기위한 목적으로 작성된 글입니다.

커스텀 필터는 사용자 정의 필터로 생각할 수 있습니다. 로그를 출력하거나 인증을 처리, 로케일을 변경하는 등 다양한 필터를 등록할 수 있습니다.

CustomerFilter

커스텀 필터는 반드시 AbstractGatewayFilterFactory를 상속받아 사용해야합니다.
Configuration 정보가 담긴 내부클래스를 매개변수로 등록할 수 있습니다.
사용자가 인증을 했을 때 서버로부터 토큰을 받고 그것을 JSON타입으로 가지고 다니게 되는데 이를 JWT(Json Web Tokens)라고 합니다.
프리 필터에서 JWT을 정상적으로 가지고있는지 작동하는지를 확인할 수 있습니다.

apply

GatewayFilter라는 빈을 하나 등록합니다.
람다식의 인자로 exchange와 chain 객체를 받습니다.
exchange로부터 request와 response를 가져옵니다.
Post filter를 적용하기 위해서 반환하는 객체 chain에다 연결시켜서 Post filter를 추가합니다.
Mono : Webflux라고 하여 Spring5에서 추가된 기능입니다. 기존의 동기방식 서버가 아니라 비동기 서버 방식의 서버를 지원할 때 단일값을 전달할 때 사용합니다.

Property 설정


CustomFilter를 등록해줍니다.

결과

profile
개발자가 되어가는 중...

0개의 댓글