Как добавить пользовательский фильтр для маршрута в Spring Cloud Gateway - PullRequest
0 голосов
/ 04 ноября 2019

Итак, я новичок в весеннем облачном шлюзе и только начал играть с ним. Я просматривал документацию и наткнулся на то, как создать пользовательский фильтр.

https://cloud.spring.io/spring-cloud-gateway/reference/html/#developer-guide

Так вот мой код для создания пользовательского фильтра -

       @Component
      public class CustomPreFilterFactory extends AbstractGatewayFilterFactory<CustomPreFilterFactory.Config> {


      public static class Config {
        //Put the configuration properties for your filter here
      }

     @Override
     public GatewayFilter apply(Config config) {

       return (exchange,chain) ->{
        ServerHttpRequest.Builder builder = exchange.getRequest().mutate();
        System.out.println("Request came in custom pre filter");
        return chain.filter(exchange.mutate().request(builder.build()).build());
      };
    }
  }

Теперь я используюjava route api, предоставляемый шлюзом для настройки моих маршрутов, так что это мой код маршрута -

        @Bean
      public RouteLocator myRoutes(RouteLocatorBuilder routeLocatorBuilder) 
{
      return routeLocatorBuilder.routes()
         .route( p -> p.path("/hello").uri("http://localhost:8081"))
        .build();
}

Теперь я хочу знать, как добавить фабрику пользовательских фильтров, которую я только что создал, к маршруту, определенному выше, программно,

Я рассмотрел следующие примеры, где они регистрируют фабрику пользовательских фильтров -

  1. https://www.javainuse.com/spring/cloud-filter
  2. https://medium.com/@niral22/spring-cloud-gateway-tutorial-5311ddd59816

Оба они создают маршруты, используя свойства, а не используя маршрут api.

Любая помощь очень ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...