但是我使用的是Java Jersey2.4,找不到ResourceFilterFactory或ResourceFilter类的任何标志。该文档也没有提及它们。它们是否已被弃用,或者它们是否真的隐藏得很好?如果已弃用它们,我该怎么用呢?泽西岛2.4和2.5现在是否可以从ContainerRequestFilter获取资源注释?
谢谢
如果要基于资源方法/类上可用的注释来修改请求的处理,则建议使用JAX-RS
2.0中的DynamicFeature。使用DynamicFeature
可以为可用资源方法的子集分配特定的提供程序。例如,考虑我有一个资源类,例如:
@Path("helloworld")
public class HelloWorldResource {
@GET
@Produces("text/plain")
public String getHello() {
return "Hello World!";
}
}
我想为其分配一个ContainerRequestFilter。我将创建:
@Provider
public class MyDynamicFeature implements DynamicFeature {
@Override
public void configure(final ResourceInfo resourceInfo, final FeatureContext context) {
if ("HelloWorldResource".equals(resourceInfo.getResourceClass().getSimpleName())
&& "getHello".equals(resourceInfo.getResourceMethod().getName())) {
context.register(MyContainerRequestFilter.class);
}
}
}
注册后(如果您使用的是包扫描,则无需注册它,以防上面带有@Provider
注释)MyContainerRequestFilter
将与您的资源方法相关联。
另一方面,您始终可以将ResourceInfo注入到过滤器中(不能使用进行注释@PreMatching
),并从中获取注释:
@Provider
public class MyContainerRequestFilter implements ContainerRequestFilter {
@Context
private ResourceInfo resourceInfo;
@Override
public void filter(final ContainerRequestContext requestContext) throws IOException {
resourceInfo.getResourceMethod().getDeclaredAnnotations();
}
}
问题内容: 我定义了一个,并且具有带有Spring注释的Java类。 我想将Bean 放入我的,因此尝试了以下操作: 但是它总是返回。我怎样才能得到一个Spring bean? 问题答案: 尝试: 你的bean在应用程序上下文中的名称/标识在哪里。甚至更好: 还可以看看GenericFilterBean及其子类。
问题内容: 我在理解剩余拦截器注释如何添加不同的值(稍后在过滤器中看到)方面有些挣扎。给定下面的代码,我希望一旦在过滤器中,权限值中将包含foo和bar,但是它们为空。任何帮助将不胜感激。 注解 过滤 应用配置 资源类别 日志输出如下: 15:59:55,223信息[标准输出](默认任务9)@ edu.psu.swe.fortress.poc.interceptor.FortressProtect
15:59:55,223 INFO[stdout](默认任务-9)@edu.psu.swe.fortress.poc.interceptor.fortressprotected(permissions=[])15:59:55,229 INFO[stdout](默认任务-9)@edu.psu.swe.fortress.poc.interceptor.fortressprotected(permiss
我想将构建信息写入属性文件。我找到了Maven资源过滤插件。这就是我的pom相关部分的样子: 如果start构建成功,但我的文件下src/main/资源将不包含构建信息。 我的属性文件如下所示: 我做错了什么?非常感谢。
我正在处理一个安全过滤器,它需要根据path变量的值做一些检查。我试着这样做: 但映射始终为空,因此我的筛选器的优先级似乎高于在请求中填充属性的。 我已尝试添加以下配置: 这没有帮助,筛选器是在调用之前执行的。 在我的安全过滤器中,我获取Auth头,解密它,从中获取并将它与路径var值进行比较。如果这些ID不匹配,我返回403。 我想知道是否有可能覆盖这两个动作的顺序。或者,也许,有其他的方法来检