Skip to content

Instantly share code, notes, and snippets.

@mrserverless
Last active October 5, 2022 20:47
Show Gist options
  • Save mrserverless/36b0546245c5348a34ed to your computer and use it in GitHub Desktop.
Save mrserverless/36b0546245c5348a34ed to your computer and use it in GitHub Desktop.
Jersey ContainerResponseFilter example of CORS Filter. The Jetty version is more comprehensive: https://gist.github.com/yunspace/07d80a9ac32901f1e149
import javax.inject.Singleton;
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;
@Singleton
@Provider
public class CORSFilter implements ContainerResponseFilter {
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
final int ACCESS_CONTROL_MAX_AGE_IN_SECONDS = 12 * 60 * 60;
MultivaluedMap<String, Object> headers = responseContext.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, ACCESS_CONTROL_MAX_AGE_IN_SECONDS);
}
}
run(Configuration configuration, Environment environment) {
environment.jersey().register(CORSFilter.class);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment