Update WebServer.java
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 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 @@
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 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 @@
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() {