정구리의 우주정복

[Spring] spring cloud gateway global filter 본문

JAVA/PROJECT

[Spring] spring cloud gateway global filter

Jungry_ 2024. 5. 20. 15:43
반응형

 

오늘은 게이트웨이에 왕 간단한 글로벌 필터를 만들어보려 한다

 

api 요청 후 글로벌필터를 거친 후에 api 를 실행하는 형태 !

 

application.yaml 설정

 

GlobalFilter.java 파일

 

@Component
@Slf4j
public class GlobalFilter extends AbstractGatewayFilterFactory<GlobalFilter.Config> {

    public GlobalFilter() {super(Config.class);}

    @Override
    public GatewayFilter apply(Config config) {
        //Custom Pre Filter
        return (exchange, chain) ->{
            ServerHttpResponse response = exchange.getResponse();
            
            //Custom Post Filter
            return chain.filter(exchange).then(Mono.fromRunnable(()->{
                if(config.postLogger()) log.info("Gateway global filter : response status code -> {}", response.getStatusCode());
            }));
        };
    }

    public record Config(boolean postLogger) {}
}

 

이렇게 생성한 후 api 를 실행해보면 

 

 

api 가 실행되고 글로벌 필터에 적용한 로그가 찍혀있는것을 볼 수 있다 

반응형
Comments