From 9f88ba9eae62cb2dee9ce5ad4ca6487b7a6e264b Mon Sep 17 00:00:00 2001 From: Vitalii Parfonov Date: Mon, 23 May 2016 10:26:58 +0300 Subject: [PATCH] Restore CORS support on WS master (#1331) Signed-off-by: Vitaly Parfonov --- .../che/api/deploy/WsMasterServletModule.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/assembly/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/WsMasterServletModule.java b/assembly/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/WsMasterServletModule.java index 059dd8b56e1..e04997d24ab 100644 --- a/assembly/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/WsMasterServletModule.java +++ b/assembly/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/WsMasterServletModule.java @@ -11,14 +11,42 @@ package org.eclipse.che.api.deploy; import com.google.inject.servlet.ServletModule; + +import org.apache.catalina.filters.CorsFilter; import org.eclipse.che.inject.DynaModule; +import javax.inject.Singleton; +import java.util.HashMap; +import java.util.Map; + /** @author andrew00x */ @DynaModule public class WsMasterServletModule extends ServletModule { @Override protected void configureServlets() { getServletContext().addListener(new org.everrest.websockets.WSConnectionTracker()); + + final Map corsFilterParams = new HashMap<>(); + corsFilterParams.put("cors.allowed.origins", "*"); + corsFilterParams.put("cors.allowed.methods", "GET," + + "POST," + + "HEAD," + + "OPTIONS," + + "PUT," + + "DELETE"); + corsFilterParams.put("cors.allowed.headers", "Content-Type," + + "X-Requested-With," + + "accept," + + "Origin," + + "Access-Control-Request-Method," + + "Access-Control-Request-Headers"); + corsFilterParams.put("cors.support.credentials", "true"); + // preflight cache is available for 10 minutes + corsFilterParams.put("cors.preflight.maxage", "10"); + bind(CorsFilter.class).in(Singleton.class); + + filter("/*").through(CorsFilter.class, corsFilterParams); + filter("/api/*").through(org.eclipse.che.api.local.filters.WsMasterEnvironmentInitializationFilter.class); serveRegex("^/api((?!(/(ws|eventbus)($|/.*)))/.*)").with(org.eclipse.che.api.local.CheGuiceEverrestServlet.class); install(new org.eclipse.che.swagger.deploy.BasicSwaggerConfigurationModule());