gpt4 book ai didi

java - 如何从 Apache CXF 中的 ContainerRequestFilter 获取目标资源

转载 作者:行者123 更新时间:2023-12-03 12:35:01 25 4
gpt4 key购买 nike

我正在使用 Apache CXF 创建一个 RESTful 网络服务。我想对使用 @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 中采用类似的方法?

谢谢

最佳答案

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

@Context

ResourceInfo info;

"javax.ws.rs.container.ResourceInfo is a new JAX-RS context which can be injected into filters and interceptors and checked which resource class and method are about to be invoked."

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

关于java - 如何从 Apache CXF 中的 ContainerRequestFilter 获取目标资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19525185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com