簡體   English   中英

如何讓攔截器在springboot中工作

[英]How to let Interceptor work in springboot

我將代碼遷移到 springboot,我們的 API 運行良好。 只有攔截器不能被觸發。 我搜索了相關的解決方案並將代碼修改為正確的格式,但仍然無法觸發攔截器。

在我們的項目中,我們還有一個擴展了 OncePerRequestFilter 並且可以工作的過濾器。 這讓我很困惑。 他們應該沒有太大區別。

順便說一句,項目中使用了AOP。 這是我的代碼。

JerseyConfig.class

@Configuration
public class JerseyConfig extends ResourceConfig {
    public JerseyConfig(){
        packages("com.xxx");
    }
}

VaultAuthorizationInterceptor.class

@Component
public class VaultAuthorizationInterceptor implements HandlerInterceptor {
    private static final Logger logger = LoggerFactory.getLogger(VaultAuthorizationInterceptor.class);

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        logger.info("test");
        return true;
    }
}

VaultAuthConfig.class

@Configuration
public class VaultAuthConfig implements WebMvcConfigurer {

    @Bean
    public VaultAuthorizationInterceptor getVaultInterceptor() {
        return new VaultAuthorizationInterceptor();
    }
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(getVaultInterceptor()).addPathPatterns("/**");
    }
}

當您使用 spring-boot-starter-jersey 時,您使用 jersey 作為您的 web 堆棧。 這意味着任何請求都將由 jersey 處理。 所以你必須注冊一個 jersey 過濾器或攔截器。 看看jersey 文檔 描述了如何使用過濾器和攔截器。 我認為您想使用過濾器,因為 jersey 堆棧中的攔截器用於操縱輸入或 output stream。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM