Spring Cloud로 개발하는 MSA/API Gateway Service

Netflix Zuul - Filter 적용

webmaster 2022. 5. 3. 14:48
728x90

Filter Class 생성

@Slf4j
@Component //Bean으로 등록
public class ZuulLoggingFilter extends ZuulFilter {
    //로그를 출력해 줄 필터
    //Logger logger = LoggerFactory.getLogger(ZuulLoggingFilter.class);
    @Override
    public Object run() throws ZuulException {
        log.info("************ printing logs : ");
        RequestContext ctx = RequestContext.getCurrentContext(); //Context를 얻어온다
        HttpServletRequest request = ctx.getRequest();
        log.info("************ " + request.getRequestURI());
        return null;
    }

    @Override
    public String filterType() {
        //사전 필터인지, 사후 필터인지
        return "pre";
    }

    @Override
    public int filterOrder() {
        //필터 순서
        return 1;
    }

    @Override
    public boolean shouldFilter() {
        //필터 사용여부
        return true;
    }
}
  • Filter 를 적용시키기 위해 ZuulFilter를 상속받는다.
  • 사후, 사전 작업을 GateWay에서 진행이 가능하다
  • filterType
    • 사전, 사후 필터인지를 적어준다.
  • filterOrder
    • 필터 순서를 정해준다.
  • shouldFilter
    • 필터의 사용 여부를 적어준다.
  • run
    • 사전, 사후 동작에서 어떤 동작을 할지 적어준다.
    • 현재는 Log를 찍어주는 역할을 한다.
    • RequestContext를 통해 RequestServlet을 읽어와 requestServlet에 URI를 Log로 찍는다
728x90