• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

custom, global filter yaml파일이 아닌 자바 소스에 설정하는 방법 문의드립니다.

22.02.28 14:48 작성 조회수 341

1

안녕하세요. 먼저 좋은 강의 만들어주셔서 감사합니다.

덕분에 MSA, Spring Cloud에 대한 기초를 잘 잡아가고 있습니다.

제가 질문드리고자 하는 내용은

이번 강의에서 만든 CustomFilter, Global Filter 를 application.yml파일이 아닌 사전에 만들었던 FilterConfig.java에서 설정하는 방법입니다.

CustomFilter, , Global Filter를 빈으로 주입받은 후에 필터를 넣으려고 했는데 타입이 맞지 않는 메서드만 제공하고 있는 것 같아서요.

괜찮으시다면 소스 추가 부탁드립니다.

감사합니다.

답변 2

·

답변을 작성해보세요.

2

안녕하세요, 이도원입니다. 

FilterConfig에서 기존에 생성하셨던 Filter 클래스(CustomFiler, AuthorizationHeaderFilter 등)를 필터로 등록하실려면 아래와 같이 작업해 보시기 바랍니다. (gatewayRoute 메소드의 filter() 부분)

@Configuration
public class FilterConfig {
Environment env;

public FilterConfig(Environment env) {
this.env = env;
}

@Bean
public RouteLocator gatewayRoutes(RouteLocatorBuilder builder, AuthorizationHeaderFilter myfilter) {

return builder.routes()
.route(r -> r.path("/first-service/**")
.filters(f -> f.addRequestHeader("first-request", "first-request-header")
.addResponseHeader("first-response", "first-response-header")
.filter(myfilter.apply(new AuthorizationHeaderFilter.Config())))
.uri("http://localhost:8081"))
.route(r -> r.path("/second-service/**")
.filters(f -> f.addRequestHeader("second-request", "second-request-header")
.addResponseHeader("second-response", "second-response-header"))
.uri("http://localhost:8082"))
.build();
}

}

https://www.inflearn.com/questions/351888

감사합니다. 

0

parkht님의 프로필

parkht

질문자

2022.03.18

안녕하세요!! 답변 감사드립니다!!

혹시 Global pattern 에 경우는 path를 /**로 설정하면 될까요?.