您可以使用ContainerRequestFilter
和检查方法
@Provider
public class CheckHeaderFilter implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext context) {
if (context.getMethod().toUpperCase().equals("GET")) {
String header = context.getHeaderString("SomeHeader");
MultivaluedMap<String, String> headers = context.getHeaders();
if(notValidHEaders) {
context.abortWith(Response.status(400).entity("Bad").build());
// or throw WebApplicationException
}
}
}
}
如果使用包扫描寄存器资源,过滤器也应该得到回升,并由于@Provider
标注的注册。否则,你需要自己注册它
参见:
如果你正在使用Spring,你可以使用拦截器来验证你的头。 –
您是否检查过此https://jersey.java.net/documentation/latest/filters-and-interceptors.html - ContainerRequestFilter – Waqas