12.9.2. Bind an Interceptor to a JAX-RS Method
Summary
All registered interceptors are invoked for every request by default. The AcceptedByMethod
interface can be implemented to fine tune this behavior.
Example 12.7. Binding Interceptors Example
RESTEasy will call the
accept()
method for interceptors that implement the AcceptedByMethod
interface. If the method returns true, the interceptor will be added to the JAX-RS method's call chain; otherwise it will be ignored for that method.
In the example below,
accept()
determines if the @GET annotationn is present on the JAX-RS method. If it is, the interceptor will be applied to the method's call chain.
@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(); } }