首页 > 解决方案 > OAuthRequestFilter(或 ContainerRequestFilter)在 AbstractFeature 中不起作用 - “org.apache.cxf.resource.method”为空

问题描述

我们使用的是 CXF 3.x,项目有类MyFeature extends AbstractFeature并且 `MyFilter 扩展了 OAuthRequestFilter。

内部MyFeature类对象MyFiltercreated as MyFilter myFilter = new MyFilter (classObj);whereclassObj是需要应用过滤器的类对象。

当我点击端点时,它会抛出 403 错误。

此外,当我使用调试器和 LOG 消息时,我知道在文件内部org.apache.cxf.interceptor.security.AbstractAuthorizingInInterceptor(cxf-core 版本 3.0.4.redhat-621159)有函数getTargetMethod,并且在该方法内部评估BindingOperationInfom.get("org.apache.cxf.resource.method")即将到来null,因此我得到 403。

注意:我们使用 osgi (jboss) bundle 作为部署策略。

标签: filtercxfhandlerrequesthandler

解决方案


执行的过滤器JAXRSInInterceptor处于unmarshal状态。这种状态org.apache.cxf.resource.method依然存在null。我在状态下创建了拦截器PRE_STREAM,当时org.apache.cxf.resource.method为您提供了应该执行的正确名称。


推荐阅读