3

我正在使用 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 中完成类似的方法吗?

谢谢

4

1 回答 1

0

只需在您的过滤器类中添加以下内容作为实例变量:

@语境

资源信息信息;

“javax.ws.rs.container.ResourceInfo 是一个新的 JAX-RS 上下文,可以将其注入过滤器和拦截器,并检查将要调用哪个资源类和方法。

(来源:https ://cwiki.apache.org/confluence/display/CXF20DOC/JAX-RS+Basics#JAX-RSBasics-ResourceInfo )

于 2013-12-11T13:05:40.413 回答