簡體   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