/** * Copyright 2016 Yahoo Inc. * * Licensed 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 * * 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 KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.yahoo.pulsar.discovery.service.server; import java.util.Properties; import java.util.Set; import com.google.common.collect.Sets; import com.yahoo.pulsar.common.configuration.PulsarConfiguration; import com.yahoo.pulsar.discovery.service.web.DiscoveryServiceServlet; /** * Service Configuration to start :{@link DiscoveryServiceServlet} * */ public class ServiceConfig implements PulsarConfiguration { // Local-Zookeeper quorum connection string private String zookeeperServers; // Global-Zookeeper quorum connection string private String globalZookeeperServers; // ZooKeeper session timeout private int zookeeperSessionTimeoutMs = 30_000; // Port to use to server binary-proto request private int servicePort = 5000; // Port to use to server binary-proto-tls request private int servicePortTls = 5001; // Port to use to server HTTP request private int webServicePort = 8080; // Port to use to server HTTPS request private int webServicePortTls = 8443; // Control whether to bind directly on localhost rather than on normal // hostname private boolean bindOnLocalhost = false; // Role names that are treated as "super-user", meaning they will be able to // do all admin operations and publish/consume from all topics private Set<String> superUserRoles = Sets.newTreeSet(); // Enable authentication private boolean authenticationEnabled = false; // Authentication provider name list, which is a list of class names private Set<String> authenticationProviders = Sets.newTreeSet(); // Enforce authorization private boolean authorizationEnabled = false; /***** --- TLS --- ****/ // Enable TLS private boolean tlsEnabled = false; // Path for the TLS certificate file private String tlsCertificateFilePath; // Path for the TLS private key file private String tlsKeyFilePath; private Properties properties = new Properties(); public String getZookeeperServers() { return zookeeperServers; } public void setZookeeperServers(String zookeeperServers) { this.zookeeperServers = zookeeperServers; } public String getGlobalZookeeperServers() { return globalZookeeperServers; } public void setGlobalZookeeperServers(String globalZookeeperServers) { this.globalZookeeperServers = globalZookeeperServers; } public int getZookeeperSessionTimeoutMs() { return zookeeperSessionTimeoutMs; } public void setZookeeperSessionTimeoutMs(int zookeeperSessionTimeoutMs) { this.zookeeperSessionTimeoutMs = zookeeperSessionTimeoutMs; } public int getServicePort() { return servicePort; } public void setServicePort(int servicePort) { this.servicePort = servicePort; } public int getServicePortTls() { return servicePortTls; } public void setServicePortTls(int servicePortTls) { this.servicePortTls = servicePortTls; } public int getWebServicePort() { return webServicePort; } public void setWebServicePort(int webServicePort) { this.webServicePort = webServicePort; } public int getWebServicePortTls() { return webServicePortTls; } public void setWebServicePortTls(int webServicePortTls) { this.webServicePortTls = webServicePortTls; } public boolean isTlsEnabled() { return tlsEnabled; } public void setTlsEnabled(boolean tlsEnabled) { this.tlsEnabled = tlsEnabled; } public String getTlsCertificateFilePath() { return tlsCertificateFilePath; } public void setTlsCertificateFilePath(String tlsCertificateFilePath) { this.tlsCertificateFilePath = tlsCertificateFilePath; } public String getTlsKeyFilePath() { return tlsKeyFilePath; } public void setTlsKeyFilePath(String tlsKeyFilePath) { this.tlsKeyFilePath = tlsKeyFilePath; } public boolean isBindOnLocalhost() { return bindOnLocalhost; } public void setBindOnLocalhost(boolean bindOnLocalhost) { this.bindOnLocalhost = bindOnLocalhost; } public boolean isAuthenticationEnabled() { return authenticationEnabled; } public void setAuthenticationEnabled(boolean authenticationEnabled) { this.authenticationEnabled = authenticationEnabled; } public Set<String> getAuthenticationProviders() { return authenticationProviders; } public void setAuthenticationProviders(Set<String> authenticationProviders) { this.authenticationProviders = authenticationProviders; } public boolean isAuthorizationEnabled() { return authorizationEnabled; } public void setAuthorizationEnabled(boolean authorizationEnabled) { this.authorizationEnabled = authorizationEnabled; } public Set<String> getSuperUserRoles() { return superUserRoles; } public void setSuperUserRoles(Set<String> superUserRoles) { this.superUserRoles = superUserRoles; } public Properties getProperties() { return properties; } public void setProperties(Properties properties) { this.properties = properties; } }