src/main/java/org/embulk/executor/remoteserver/Launcher.java in embulk-executor-remoteserver-0.2.1 vs src/main/java/org/embulk/executor/remoteserver/Launcher.java in embulk-executor-remoteserver-0.3.0

- old
+ new

@@ -10,16 +10,42 @@ public class Launcher { public static void main(String[] args) throws IOException { Map<String, String> envVars = System.getenv(); String host = envVars.getOrDefault("BIND_ADDRESS", "0.0.0.0"); int port = Integer.parseInt(envVars.getOrDefault("PORT", "30001")); - int numOfWorkers = Integer.parseInt(envVars.getOrDefault("NUM_OF_WORKERS", "1")); - Level logLevel = Level.toLevel(envVars.getOrDefault("LOG_LEVEL", "info")); - configureLogLevel(logLevel); - EmbulkServer.start(host, port, numOfWorkers); + int numOfWorkers = Integer.parseInt(envVars.getOrDefault("NUM_OF_WORKERS", "5")); + TLSConfig tlsConfig = createTLSConfig(envVars); + configureLogLevel(envVars); + + EmbulkServer.start(host, port, numOfWorkers, tlsConfig); } - private static void configureLogLevel(Level logLevel) { + private static TLSConfig createTLSConfig(Map<String, String> envVars) { + if (!"true".equals(envVars.get("ENABLE_TLS"))) { + return null; + } + + TLSConfig tlsConfig = new TLSConfig(); + String keyP12Path = envVars.get("KEY_P12_PATH"); + String keyP12Password = envVars.get("KEY_P12_PASSWORD"); + if (keyP12Path != null && keyP12Password != null) { + tlsConfig.keyStore(new P12File(keyP12Path, keyP12Password)); + } + + String trustP12Path = envVars.get("TRUST_P12_PATH"); + String trustP12Password = envVars.get("TRUST_P12_PASSWORD"); + if (trustP12Path != null && trustP12Password != null) { + tlsConfig.trustStore(new P12File(trustP12Path, trustP12Password)); + } + + if ("true".equals(envVars.get("ENABLE_TLS_CLIENT_AUTH"))) { + tlsConfig.enableClientAuth(true); + } + return tlsConfig; + } + + private static void configureLogLevel(Map<String, String> envVars) { + Level logLevel = Level.toLevel(envVars.getOrDefault("LOG_LEVEL", "info")); Logger rootLogger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); rootLogger.setLevel(logLevel); } }