java - 如何在 ContainerRequestFilter 中检索请求的匹配资源

标签 java annotations jersey jax-rs

我正在使用 JAX-RS/Jersey 开发 WebService。

我设置了一个ContainerRequestFilter,其目的是验证用户。我只需要通过身份验证保护一些路径,其余的就可以提供给所有人。

我想通过我的 ContainerRequestFilter 中的 ExtendedUriInfo 检索 matchedResources/matchedResults,以便我可以检查路径是否应该受到保护。有没有一种方法可以创建一个过滤器,该过滤器在填充 ExtendedUriInfo 之后但在调用匹配的资源类和方法之前调用?

最佳答案

这是一个更一般的答案(例如,如果您正在使用另一个 jax-rs 实现,如 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)

Original answer here

关于java - 如何在 ContainerRequestFilter 中检索请求的匹配资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11811827/

相关文章:

java - Swing 显示多个子 jframe

java - glassfish 版本中 JSON 输出的差异

java - 使用 Tomcat 部署 JAX-RS 应用程序,但始终找不到所需的资源

java - 使用 Apache Bcel 获取注释名称

java - 什么时候使用验证?

Java 创建一个包含注释值的 final 字段以在许多方法上重用它

java - JAX-RS Access-Control-Allow-Origin header 不存在,但已添加到 ResponseFilter 中

java - PathPredicateEvaluator 搜索两条路径

java - 将 ISO 8601 日期转换为标准字符串格式

java - 从 xml 生成 xsd 时混合 ="true"