Dynamically applying filters and interceptors on REST resources using DynamicFeature

The javax.ws.rs.container.DynamicFeature contract is used by the JAX-RS runtime to register providers, such as interceptors and filters, to a particular resource class or method during application deployment.

The following code snippet shows how you can build the DynamicFeature provider. This example applies RequestLoggerFilter to resource methods annotated with @RequestLogger.

import javax.ws.rs.container.DynamicFeature; 
import javax.ws.rs.container.ResourceInfo; 
import javax.ws.rs.core.FeatureContext; 
import javax.ws.rs.ext.Provider;  
 
@Provider 
public class DynamicFeatureRegister implements DynamicFeature { 
    @Override 
    public void configure(ResourceInfo resourceInfo, 
        FeatureContext context) { 
        //This simple example adds RequestLoggerFilter to methods 
        //annotated with @ RequestLogger 
        if (resourceInfo.getResourceMethod().isAnnotationPresent 
            (RequestLogger.class)) { 
            context.register(RequestLoggerFilter.class); 
        } 
    } 
} 

The DynamicFeature interface is executed at deployment time for each resource method. You can register filters or interceptors on the desired resource class or method in the DynamicFeature implementation.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.117.99.152