This is an automated email from the ASF dual-hosted git repository. kaspersor pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/metamodel-membrane.git
commit 1c61b930382e33f23619515b5a77c43af07da62e Author: Nicola Vitucci <nicola.vitu...@gmail.com> AuthorDate: Fri May 24 11:32:44 2019 +0100 Update WebServer.java --- .../metamodel/membrane/server/WebServer.java | 23 ++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/undertow/src/main/java/org/apache/metamodel/membrane/server/WebServer.java b/undertow/src/main/java/org/apache/metamodel/membrane/server/WebServer.java index 4e3d188..d74c953 100644 --- a/undertow/src/main/java/org/apache/metamodel/membrane/server/WebServer.java +++ b/undertow/src/main/java/org/apache/metamodel/membrane/server/WebServer.java @@ -6,9 +6,9 @@ * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @@ -33,6 +33,7 @@ import org.springframework.web.servlet.DispatcherServlet; import com.google.common.base.Strings; import io.undertow.Undertow; +import io.undertow.server.HttpHandler; import io.undertow.server.handlers.resource.FileResourceManager; import io.undertow.servlet.Servlets; import io.undertow.servlet.api.DeploymentInfo; @@ -52,10 +53,12 @@ public class WebServer { final String portEnv = System.getenv("MEMBRANE_HTTP_PORT"); final int port = Strings.isNullOrEmpty(portEnv) ? DEFAULT_PORT : Integer.parseInt(portEnv); + final String enableCorsEnv = System.getenv("ENABLE_CORS"); + final boolean enableCors = !Strings.isNullOrEmpty(enableCorsEnv); logger.info("Apache MetaModel Membrane server initiating on port {}", port); - startServer(port); + startServer(port, enableCors); logger.info("Apache MetaModel Membrane server started on port {}", port); } @@ -69,7 +72,7 @@ public class WebServer { } } - public static void startServer(int port) throws Exception { + public static void startServer(int port, boolean enableCors) throws Exception { final DeploymentInfo deployment = Servlets.deployment().setClassLoader(WebServer.class.getClassLoader()); deployment.setContextPath(""); deployment.setDeploymentName("membrane"); @@ -85,7 +88,15 @@ public class WebServer { final DeploymentManager manager = Servlets.defaultContainer().addDeployment(deployment); manager.deploy(); - final Undertow server = Undertow.builder().addHttpListener(port, "0.0.0.0").setHandler(manager.start()).build(); + HttpHandler handler; + if (enableCors) { + CorsHandlers corsHandlers = new CorsHandlers(); + handler = corsHandlers.allowOrigin(manager.start()); + } + else + handler = manager.start(); + + final Undertow server = Undertow.builder().addHttpListener(port, "0.0.0.0").setHandler(handler).build(); server.start(); Runtime.getRuntime().addShutdownHook(new Thread() {