当前位置: 首页 > 知识库问答 >
问题:

Spring云网关:如何添加一个过滤器组用于多个组

韩羽
2023-03-14

用spring云网关构建新的API网关。目前经历以下挑战。

共有1个答案

单于经纬
2023-03-14

我不确定下面是否回答了你所有的问题,但它肯定回答了一些。

@Bean
public RouteLocator routes(RouteLocatorBuilder routeBuilder) {
    return routeBuilder.routes()
            .route("my_route",
                    route -> route
                            .path("/context/my-resources/**")
                            .filters(f -> f
                                    .rewritePath("/context/my-resources/of-some-type/(?<RID>.*)", "/my-resources-of-type-one/${RID}")
                                    .rewritePath("/context/my-resources/of-some-other-type/(?<RID>.*)", "/my-resources-of-type-two/${RID}")
                                    .hystrix(config -> config.setName("fallback name")))
                            .uri("http://localhost:8091")
            )
            .build();
}

在本例中,链接了3个筛选器:第一个和第二个筛选器将URL和前进路径变量映射到下游URL,而第三个筛选器定义了回退策略。

 类似资料:
  • 我使用spring cloud gateway将请求路由到我的下游应用程序,我定义了如下的路由器 路由工作正常,现在我需要添加一个预过滤器,它可以执行一些预条件并获得路由路径。但不知道如何动态更改uri。uri(“http://localhost:8081/test") 下面是我在preFilter中尝试的代码。 因此,我需要根据我的自定义过滤器中的db查找返回,从传入路径/user/test/*

  • 我正在尝试将JHipster从使用Zuul迁移到Spring云网关。JHipster使用Eureka来查找路由,我相信我已经正确配置了Spring Cloud Gateway来查找路由并向它们传播访问令牌。下面是我的配置: 我创建了一个pull请求,以显示集成Spring Cloud Gateway后发生了什么变化。 https://github.com/mraible/jhipster-reac

  • 问题内容: 我有这样的课 而且我以为Spring Boot会尊重设置的urlPatterns,但是由于某种原因,每个请求都会到达此过滤器。我想我可能做错了。 另外,我没有使用Spring Security 问题答案: 您正在混合使用和。前者应在和结合使用的类上使用。后者应以Bean形式发布(就像您通过注释一样),并使用其方法配置url映射。

  • 通过,我可以轻松地在方法中向添加一个筛选器。 如何使用添加筛选器?我必须使用XML吗? 为了帮助其他人更容易地理解Spring Web配置,我绘制了下面的插图。 比起记住那么多东西,查它还不那么痛苦。 和一篇关于Spring Web初始化的好文章: http://www.kubrynski.com/2014/01/commanding-spring-web-initialization.html

  • 问题内容: 我有一个过滤器linkifyStuff,其中需要使用其他过滤器处理一些变量。我无法弄清楚从另一个调用一个过滤器的语法。 我了解过滤器链接-这不是我想要的。我想将过滤器应用于linkifyStuff过滤器中的局部变量,而不是其输入或输出。 我希望像下面这样工作,但是$ filter(’filtername’)显然不是正确的语法。 我可以为sanitizeStuff和sanitizeStu

  • 我想知道,在spring boot中是否有类(用于web应用程序)的注释?也许是? 我想在我的项目中添加一个自定义筛选器。 spring boot参考指南提到了关于,但我不确定如何使用它。