/**
* 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;
}
}