我正在使用 Dropwizard,我想从过滤器中包装一个请求对象,并从我的资源类中访问该实例
例如执行以下操作
过滤器.java
public class ServiceRequestExtractionFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) {
HttpServletRequest httpRequest = (HttpServletRequest) request;
ProxyResourceRequest requestWrapper = new RequestWrapper(httpRequest, svcRequestData);
chain.doFilter(requestWrapper, response);
}
}
...
资源.java
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public class DemoResource {
@GET
@Timed
public Response get(@Context UriInfo uriInfo, @Context RequestWrapper request) {
...
这不起作用,我也没有任何理由期望它,但这似乎是解释我试图做什么的好方法。