我正在使用Apache CXF创建RESTful Web服务。 我想对使用@Authenticate注释的资源的请求进行身份验证。为此,我打算编写一个匹配ContainerRequestFilter的帖子并验证请求,如果身份验证失败,则执行ContainerRequestContext.abortWith(javax.ws.rs.core.Response)。但是,我只想对使用@Authenticate注释的资源进行身份验证。
问题是我无法找到如何访问匹配的资源。我知道我可以使用CXF拦截器来实现它,但我想坚持使用JAX-RS 2.0提供的功能。 我在另一篇文章中看到你可以在Rest-easy
中使用下面的内容ResourceMethodInvoker methodInvoker = (ResourceMethodInvoker)
requestContext.getProperty("org.jboss.resteasy.core.ResourceMethodInvoker");
Method method = methodInvoker.getMethod();
在CXF中可以采用类似的方法吗?
由于
答案 0 :(得分:0)
只需在过滤器类中添加以下内容作为实例变量:
@Context
ResourceInfo信息;
“javax.ws.rs.container.ResourceInfo是一个新的JAX-RS上下文,它可以 注入过滤器和拦截器并检查哪个资源 即将调用类和方法。“
(来源:https://cwiki.apache.org/confluence/display/CXF20DOC/JAX-RS+Basics#JAX-RSBasics-ResourceInfo)