package org.lambda3.graphene.server.filter;

/*-
 * ==========================License-Start=============================
 * CORSFilter.java - Graphene Server - Lambda^3 - 2017
 * Graphene
 * %%
 * Copyright (C) 2017 Lambda^3
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public
 * License along with this program.  If not, see
 * <http://www.gnu.org/licenses/gpl-3.0.html>.
 * ==========================License-End===============================
 */


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;

@Provider
public class CORSFilter 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-Methods",
                "GET, POST, OPTIONS");
        headers.add(
                "Access-Control-Allow-Headers",
                "Cache-Control, X-Requested-With, Origin, Content-Type, Accept, Authorization");
    }
}
