繁体   English   中英

将 WebFilter Spring WebFlux 添加到路径

[英]Add a WebFilter Spring WebFlux to paths

我有一个过滤器:

@Component
public class RequestIdFilter implements WebFilter {


    @Override
    public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {

        //my logic

        return chain.filter(exchange);
    }

如果它不是 WebFlux,那么我会这样做:

@Configuration
class FilterConfig {

    private final String V1_URL_PATTERN = "/v1/*";
    private final String V2_URL_PATTERN = "/v2/*";

    @Bean
    public FilterRegistrationBean<RequestIdFilter> requestIdFilter() {
        FilterRegistrationBean<RequestIdFilter> filterRegistrationBean = new FilterRegistrationBean();
        filterRegistrationBean.setFilter(new RequestIdFilter());
        filterRegistrationBean.addUrlPatterns(V1_URL_PATTERN, V2_URL_PATTERN);
        return filterRegistrationBean;
    }
}

但这是不可能的,因为 RequestIdFilter 实现了 WebFilter...

如何使用 WebFilter Spring WebFlux 指定过滤器的必要路径?

据此,声明 WebFilter 就足够了

我认为你需要一个 HandlerFilterFunctions

WebFlux 框架提供了两种类型的过滤器:WebFilters 和 HandlerFilterFunctions。 HandlerFilterFunction 实现仅适用于基于路由器的实现。

这里有一个例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM