package br.com.doctors.interceptors;
import javax.servlet.http.HttpServletResponse;
import br.com.caelum.vraptor.*;
import br.com.caelum.vraptor.core.InterceptorStack;
import br.com.caelum.vraptor.interceptor.Interceptor;
import br.com.caelum.vraptor.ioc.*;
import br.com.caelum.vraptor.resource.ResourceMethod;
@Intercepts
@RequestScoped
public class NoCacheInterceptor
implements Interceptor {
private final HttpServletResponse response;
public NoCacheInterceptor(HttpServletResponse response) {
this.response = response;
}
@Override
public boolean accepts(ResourceMethod method) {
return true; // allow all requests
}
@Override
public void intercept(InterceptorStack stack, ResourceMethod method,
Object resourceInstance)
throws InterceptionException {
// set the expires to past
response.setHeader("Expires", "Wed, 31 Dec 1969 21:00:00 GMT");
// no-cache headers for HTTP/1.1
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
// no-cache headers for HTTP/1.1 (IE)
response.addHeader("Cache-Control", "post-check=0, pre-check=0");
// no-cache headers for HTTP/1.0
response.setHeader("Pragma", "no-cache");
stack.next(method, resourceInstance);
}
}