package com.constellio.app.api.admin.services; import java.io.IOException; import java.util.logging.Logger; import javax.ws.rs.container.ContainerRequestContext; import javax.ws.rs.container.ContainerResponseContext; import javax.ws.rs.container.ContainerResponseFilter; import javax.ws.rs.container.PreMatching; import javax.ws.rs.ext.Provider; import com.constellio.app.client.AdminServicesConstants; @Provider @PreMatching public class AdminServicesResponseFilter implements ContainerResponseFilter { private final static Logger log = Logger.getLogger(AdminServicesResponseFilter.class.getName()); @Override public void filter(ContainerRequestContext requestCtx, ContainerResponseContext responseCtx) throws IOException { log.info("Filtering REST Response"); responseCtx.getHeaders().add("Access-Control-Allow-Origin", "*"); // You may further limit certain client IPs with Access-Control-Allow-Origin instead of '*' responseCtx.getHeaders().add("Access-Control-Allow-Credentials", "true"); responseCtx.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); responseCtx.getHeaders().add("Access-Control-Allow-Headers", AdminServicesConstants.SERVICE_KEY + ", " + AdminServicesConstants.AUTH_TOKEN); } }