filter - OAuthRequestFilter(或 ContainerRequestFilter)在 AbstractFeature 中不起作用 - “org.apache.cxf.resource.method”为空
问题描述
我们使用的是 CXF 3.x,项目有类MyFeature extends AbstractFeature
并且 `MyFilter 扩展了 OAuthRequestFilter。
内部MyFeature
类对象MyFilter
created as MyFilter myFilter = new MyFilter (classObj);
whereclassObj
是需要应用过滤器的类对象。
当我点击端点时,它会抛出 403 错误。
此外,当我使用调试器和 LOG 消息时,我知道在文件内部org.apache.cxf.interceptor.security.AbstractAuthorizingInInterceptor
(cxf-core 版本 3.0.4.redhat-621159)有函数getTargetMethod
,并且在该方法内部评估BindingOperationInfo
和m.get("org.apache.cxf.resource.method")
即将到来null
,因此我得到 403。
注意:我们使用 osgi (jboss) bundle 作为部署策略。
解决方案
执行的过滤器JAXRSInInterceptor
处于unmarshal
状态。这种状态org.apache.cxf.resource.method
依然存在null
。我在状态下创建了拦截器PRE_STREAM
,当时org.apache.cxf.resource.method
为您提供了应该执行的正确名称。
推荐阅读
- sql - 一个表可以拥有的最大有用索引数?
- android - 将 Gradle 更新到 3.1.1 版后,Android 库无法正常工作
- php - 通过 PHP删除标签并保留标签内容?
- linux - 在循环中使用带有 sql 输出的 for
- arrays - [number, number] 是元组类型吗?
- php - Laravel 全名检查它是否真的完整
- plsql - “ORA-24344:编译成功”错误是什么意思?
- c# - NoesisGUI - 在 Noesis.Image 元素中加载 PNG
- hibernate - 在 HQL 中减去日期
- angular - angular2 从动态子级向父级发出事件