在Jersey中,可以添加ContainerRequestFilter
或ContainerResponseFilter
public class RequestFilter implements ContainerRequestFilter {
@Override
public ContainerRequest filter(ContainerRequest containerRequest) {
// logic
}
}
public class ResponseFilter implements ContainerResponseFilter {
@Override
public ContainerResponse filter(ContainerRequest request,
ContainerResponse response) {
// logic
}
}
两者都是使用PackagesResourceConfig添加的:
PackagesResourceConfig prc = new PackagesResourceConfig("com.company.xxx");
prc.getContainerRequestFilters().add(new RequestFilter());
prc.getContainerResponseFilters().add(new ResponseFilter());
谢谢
如果不调用endpoint,就无法过滤任何内容,因为这是请求到达服务的方式。如果你指的是不打控制器,那就另当别论了。但即使那样,您也想要预匹配响应过滤器之类的东西,而这种东西自然是不存在的。它违背了你服务的目的。为什么不在控制器和处理链中的任何其他部分完成它们的工作后,在所有响应上添加您想要的任何标题呢?!您可以访问响应过滤器中的请求上下文和响应上下文,因此正如Paul在注释中提到的那样,您可以在requestContext中存储一些需要的信息,而在ContainerRequestFilter中存储这些信息。JAX-RS规范有一些过滤器和拦截器的好例子。
我想通过REST API(最好使用Python或Java)发出请求。然而,我想过滤掉结果,因为我不想从响应中得到所有信息。例如,我只需要文本。作为初学者,我很难取得成功。到目前为止,我只在Python上用库“requests”完成了一个请求。有人能帮我吗?
我正在使用Servlet过滤器来实施访问控制。扩展it以测试用户角色的最佳方式是什么?我能想出几种解决方案,但没有一种是优雅的。 编写角色测试并不难。但是如何将角色传递给给定url的过滤器? e、 在网络上。xml 谢谢
如果有人能抛出关于如何修改以下播放框架日志过滤器(ref.play filters)以实现以下目标的指针,我将不胜感激: null
我试图记录应用程序中的每个传入请求和传出响应。我正在使用jee 6,所以我没有ContainerRequestFilter和ContainerResponseFilter类。所以我决定用滤镜。 我用@WebFilter(“/*”)注释了一个类,并实现了Filter接口。我成功地读取了请求头和请求正文。我也很难阅读响应标题和响应正文。下面是代码片段 MyHttpServletResponse seW
在Jersey 1.x中,我们从一个(Jersey)会话属性访问Wicket会话,如这里https://stackoverflow.com/a/15767824/1399659.所述 在迁移到Jersey 2.x时,使用ContainerRequestFilter似乎是合适的模式,它还允许Springbean注入。我们通过包括 作为 Servlet 容器的初始化参数,并在容器请求筛选实现上使用@P
在内部,如果出现任何异常,将被重定向&这不需要通过,可以跳过此请求。 我已经实现了OncePerRequestFilter&任何请求都不会调用它。这必须在OAuth过滤器之前调用。 让我知道这个安全配置出了什么问题。