我正在使用Spring Cloud的Zuul将一些API请求代理到一些外部服务器。代理本身运行良好,但每个服务都需要请求头中提供的(不同)令牌。
我已成功为每个应用适当标头的令牌编写了一个简单的预过滤器。但是,我现在有一个问题。即使在完成文档后,我也无法弄清楚如何使每个过滤器仅适用于正确的路径。我不想在网址随环境变化时执行网址匹配。理想情况下,我可以通过某种方式获取过滤器中路径的名称。
我的application.yml:
zuul:
routes:
foo:
path: /foo/**
url: https://fooserver.com
bar:
path: /bar/**
url: https://barserver.com
理想情况下,我想在FooFilter.java(预过滤器)中做类似的事情:
public bool shouldFilter() {
return RequestContext.getCurrentContext().getRouteName().equals("foo");
}
但我似乎无法找到任何办法。
答案 0 :(得分:16)
您可以使用oceanIcons <- iconList(
Rank1 = makeIcon("23-1.png", "ferry-18@2x.png", 36, 36),
Rank2= makeIcon("23-2.png", "danger-24@2x.png", 36, 36),
Rank3= makeIcon("23-3.png", "danger-24@2x.png", 36, 36),
Rank4= makeIcon("23-4.png", "danger-24@2x.png", 36, 36),
Rank5= makeIcon("23-5.png", "danger-24@2x.png", 36, 36),
Rank0= makeIcon("circle2.png", "danger-24@2x.png", 48, 48)
)
map = leaflet(map_df) %>% addTiles() %>% addMarkers(icon = ~oceanIcons[map_df$rank],
popup=sprintf("<strong> %s <br>Expected Volume of Bike Departures: %s </br> Distance in Miles: %s <br>
%s</br></strong>"
,map_df$st_name,map_df$outbound,map_df$distance, map_df$rank))%>% addProviderTiles(providers$CartoDB.Positron)
中的proxy
标头来区分路由服务器,如下所示。如果您使用功能区,则还可以使用RequestContext
标题。但是,如果您在示例上方指定了url direclty,则应使用serviceId
标头。您必须知道的一件事是proxy
标头设置在proxy
中,因此您的预过滤器必须具有比PreDecorationFilter
具有的值更大的过滤器顺序值(它是5 at at这一刻)。
PreDecorationFilter