Skip to content

Instantly share code, notes, and snippets.

@cristobal
Created July 30, 2014 11:26
Show Gist options
  • Save cristobal/b5b35cc4ed483396797e to your computer and use it in GitHub Desktop.
Save cristobal/b5b35cc4ed483396797e to your computer and use it in GitHub Desktop.
CorsFilter for Jersey JAX-RS
import javax.annotation.Priority;
import javax.ws.rs.Priorities;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.ext.Provider;
import java.io.IOException;
// @see http://simplapi.wordpress.com/2013/04/10/jersey-jax-rs-implements-a-cross-domain-filter/
// Turn off by commenting out @Provider or using ConfigValue...
@Provider
@Priority(Priorities.AUTHORIZATION)
public class CorsResponseFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext containerRequestContext, ContainerResponseContext containerResponseContext) throws IOException {
MultivaluedMap<String, Object> headers = containerResponseContext.getHeaders();
headers.add("Access-Control-Allow-Origin", "*");
headers.add("Access-Control-Allow-Headers", "origin, content-type, accept, authorization");
headers.add("Access-Control-Allow-Credentials", "true");
headers.add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
headers.add("Access-Control-Max-Age", "1209600");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment