28.5. Binding Interceptors

By default, any registered interceptor will be invoked for every request. You can alter this by having your interceptors implement the org.jboss.resteasy.spi.AcceptedByMethod interface:
    public interface AcceptedByMethod
    {
       public boolean accept(Class declaring, Method method);
    }

If your interceptor implements this interface, RESTEasy invokes the accept() method. If this method returns true, RESTEasy adds that interceptor to the JAX-RS method's call chain. If it returns false, the interceptor will not be added to the call chain. For example:
@Provider
@ServerInterceptor
public class MyHeaderDecorator implements MessageBodyWriterInterceptor, AcceptedByMethod {

    public boolean accept(Class declaring, Method method) {
       return method.isAnnotationPresent(GET.class);
    }

   public void write(MessageBodyWriterContext context) throws IOException, WebApplicationException
   {
      context.getHeaders().add("My-Header", "custom");
      context.proceed();
   }
}
In this example, the accept() method checks whether the @GET annotation exists in the JAX-RS method. If it does, the interceptor will be applied to that method's call chain.