繁体   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