mirror of https://github.com/apache/nifi.git
NIFI-2485 - Updating standalone defaults, adding logging
This commit is contained in:
parent
1db5e73102
commit
9b41e0f9fd
|
@ -35,9 +35,9 @@ public class NifiPropertiesTlsClientConfigWriter implements ConfigurationWriter<
|
||||||
private final OutputStreamFactory outputStreamFactory;
|
private final OutputStreamFactory outputStreamFactory;
|
||||||
private final File file;
|
private final File file;
|
||||||
private final String hostname;
|
private final String hostname;
|
||||||
private final String httpsPort;
|
private final int httpsPort;
|
||||||
|
|
||||||
public NifiPropertiesTlsClientConfigWriter(NiFiPropertiesWriterFactory niFiPropertiesWriterFactory, OutputStreamFactory outputStreamFactory, File file, String hostname, String httpsPort) {
|
public NifiPropertiesTlsClientConfigWriter(NiFiPropertiesWriterFactory niFiPropertiesWriterFactory, OutputStreamFactory outputStreamFactory, File file, String hostname, int httpsPort) {
|
||||||
this.niFiPropertiesWriterFactory = niFiPropertiesWriterFactory;
|
this.niFiPropertiesWriterFactory = niFiPropertiesWriterFactory;
|
||||||
this.outputStreamFactory = outputStreamFactory;
|
this.outputStreamFactory = outputStreamFactory;
|
||||||
this.file = file;
|
this.file = file;
|
||||||
|
@ -63,14 +63,12 @@ public class NifiPropertiesTlsClientConfigWriter implements ConfigurationWriter<
|
||||||
niFiPropertiesWriter.setPropertyValue(NiFiProperties.SECURITY_TRUSTSTORE, parentPath.relativize(Paths.get(tlsClientConfig.getTrustStore())).toString());
|
niFiPropertiesWriter.setPropertyValue(NiFiProperties.SECURITY_TRUSTSTORE, parentPath.relativize(Paths.get(tlsClientConfig.getTrustStore())).toString());
|
||||||
niFiPropertiesWriter.setPropertyValue(NiFiProperties.SECURITY_TRUSTSTORE_TYPE, tlsClientConfig.getTrustStoreType());
|
niFiPropertiesWriter.setPropertyValue(NiFiProperties.SECURITY_TRUSTSTORE_TYPE, tlsClientConfig.getTrustStoreType());
|
||||||
niFiPropertiesWriter.setPropertyValue(NiFiProperties.SECURITY_TRUSTSTORE_PASSWD, tlsClientConfig.getTrustStorePassword());
|
niFiPropertiesWriter.setPropertyValue(NiFiProperties.SECURITY_TRUSTSTORE_PASSWD, tlsClientConfig.getTrustStorePassword());
|
||||||
if (!StringUtils.isEmpty(httpsPort)) {
|
if (!StringUtils.isEmpty(hostname)) {
|
||||||
if (!StringUtils.isEmpty(hostname)) {
|
niFiPropertiesWriter.setPropertyValue(NiFiProperties.WEB_HTTPS_HOST, hostname);
|
||||||
niFiPropertiesWriter.setPropertyValue(NiFiProperties.WEB_HTTPS_HOST, hostname);
|
|
||||||
}
|
|
||||||
niFiPropertiesWriter.setPropertyValue(NiFiProperties.WEB_HTTPS_PORT, httpsPort);
|
|
||||||
niFiPropertiesWriter.setPropertyValue(NiFiProperties.WEB_HTTP_HOST, "");
|
|
||||||
niFiPropertiesWriter.setPropertyValue(NiFiProperties.WEB_HTTP_PORT, "");
|
|
||||||
niFiPropertiesWriter.setPropertyValue(NiFiProperties.SITE_TO_SITE_SECURE, "true");
|
|
||||||
}
|
}
|
||||||
|
niFiPropertiesWriter.setPropertyValue(NiFiProperties.WEB_HTTPS_PORT, Integer.toString(httpsPort));
|
||||||
|
niFiPropertiesWriter.setPropertyValue(NiFiProperties.WEB_HTTP_HOST, "");
|
||||||
|
niFiPropertiesWriter.setPropertyValue(NiFiProperties.WEB_HTTP_PORT, "");
|
||||||
|
niFiPropertiesWriter.setPropertyValue(NiFiProperties.SITE_TO_SITE_SECURE, "true");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class TlsToolkitStandalone {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createNifiKeystoresAndTrustStores(File baseDir, TlsConfig tlsConfig, NiFiPropertiesWriterFactory niFiPropertiesWriterFactory, List<String> hostnames, List<String> keyStorePasswords,
|
public void createNifiKeystoresAndTrustStores(File baseDir, TlsConfig tlsConfig, NiFiPropertiesWriterFactory niFiPropertiesWriterFactory, List<String> hostnames, List<String> keyStorePasswords,
|
||||||
List<String> keyPasswords, List<String> trustStorePasswords, String httpsPort) throws GeneralSecurityException, IOException {
|
List<String> keyPasswords, List<String> trustStorePasswords, int httpsPort) throws GeneralSecurityException, IOException {
|
||||||
String signingAlgorithm = tlsConfig.getSigningAlgorithm();
|
String signingAlgorithm = tlsConfig.getSigningAlgorithm();
|
||||||
int days = tlsConfig.getDays();
|
int days = tlsConfig.getDays();
|
||||||
String keyPairAlgorithm = tlsConfig.getKeyPairAlgorithm();
|
String keyPairAlgorithm = tlsConfig.getKeyPairAlgorithm();
|
||||||
|
|
|
@ -26,10 +26,13 @@ import org.apache.nifi.toolkit.tls.properties.NiFiPropertiesWriterFactory;
|
||||||
import org.apache.nifi.toolkit.tls.util.PasswordUtil;
|
import org.apache.nifi.toolkit.tls.util.PasswordUtil;
|
||||||
import org.apache.nifi.toolkit.tls.util.TlsHelper;
|
import org.apache.nifi.toolkit.tls.util.TlsHelper;
|
||||||
import org.apache.nifi.util.StringUtils;
|
import org.apache.nifi.util.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -46,14 +49,17 @@ public class TlsToolkitStandaloneCommandLine extends BaseCommandLine {
|
||||||
public static final String HOSTNAMES_ARG = "hostnames";
|
public static final String HOSTNAMES_ARG = "hostnames";
|
||||||
public static final String HTTPS_PORT_ARG = "httpsPort";
|
public static final String HTTPS_PORT_ARG = "httpsPort";
|
||||||
|
|
||||||
public static final String DEFAULT_OUTPUT_DIRECTORY = new File(".").getPath();
|
public static final String DEFAULT_OUTPUT_DIRECTORY = "../" + Paths.get(".").toAbsolutePath().normalize().getFileName().toString();
|
||||||
|
public static final int DEFAULT_HTTPS_PORT = 10443;
|
||||||
|
|
||||||
public static final String DESCRIPTION = "Creates certificates and config files for nifi cluster.";
|
public static final String DESCRIPTION = "Creates certificates and config files for nifi cluster.";
|
||||||
|
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(TlsToolkitStandaloneCommandLine.class);
|
||||||
|
|
||||||
private final PasswordUtil passwordUtil;
|
private final PasswordUtil passwordUtil;
|
||||||
private File baseDir;
|
private File baseDir;
|
||||||
private List<String> hostnames;
|
private List<String> hostnames;
|
||||||
private String httpsPort;
|
private int httpsPort;
|
||||||
private NiFiPropertiesWriterFactory niFiPropertiesWriterFactory;
|
private NiFiPropertiesWriterFactory niFiPropertiesWriterFactory;
|
||||||
private List<String> keyStorePasswords;
|
private List<String> keyStorePasswords;
|
||||||
private List<String> keyPasswords;
|
private List<String> keyPasswords;
|
||||||
|
@ -68,8 +74,8 @@ public class TlsToolkitStandaloneCommandLine extends BaseCommandLine {
|
||||||
this.passwordUtil = passwordUtil;
|
this.passwordUtil = passwordUtil;
|
||||||
addOptionWithArg("o", OUTPUT_DIRECTORY_ARG, "The directory to output keystores, truststore, config files.", DEFAULT_OUTPUT_DIRECTORY);
|
addOptionWithArg("o", OUTPUT_DIRECTORY_ARG, "The directory to output keystores, truststore, config files.", DEFAULT_OUTPUT_DIRECTORY);
|
||||||
addOptionWithArg("n", HOSTNAMES_ARG, "Comma separated list of hostnames.", TlsConfig.DEFAULT_HOSTNAME);
|
addOptionWithArg("n", HOSTNAMES_ARG, "Comma separated list of hostnames.", TlsConfig.DEFAULT_HOSTNAME);
|
||||||
addOptionWithArg("p", HTTPS_PORT_ARG, "Https port to use.", "");
|
addOptionWithArg("p", HTTPS_PORT_ARG, "Https port to use.", DEFAULT_HTTPS_PORT);
|
||||||
addOptionWithArg("f", NIFI_PROPERTIES_FILE_ARG, "Base nifi.properties file to update.", "");
|
addOptionWithArg("f", NIFI_PROPERTIES_FILE_ARG, "Base nifi.properties file to update. (Embedded file identical to the one in a default NiFi install will be used if not specified.)");
|
||||||
addOptionWithArg("S", KEY_STORE_PASSWORD_ARG, "Keystore password to use. Must either be one value or one for each host. (autogenerate if not specified)");
|
addOptionWithArg("S", KEY_STORE_PASSWORD_ARG, "Keystore password to use. Must either be one value or one for each host. (autogenerate if not specified)");
|
||||||
addOptionWithArg("K", KEY_PASSWORD_ARG, "Key password to use. Must either be one value or one for each host. (autogenerate if not specified)");
|
addOptionWithArg("K", KEY_PASSWORD_ARG, "Key password to use. Must either be one value or one for each host. (autogenerate if not specified)");
|
||||||
addOptionWithArg("P", TRUST_STORE_PASSWORD_ARG, "Keystore password to use. Must either be one value or one for each host. (autogenerate if not specified)");
|
addOptionWithArg("P", TRUST_STORE_PASSWORD_ARG, "Keystore password to use. Must either be one value or one for each host. (autogenerate if not specified)");
|
||||||
|
@ -100,7 +106,7 @@ public class TlsToolkitStandaloneCommandLine extends BaseCommandLine {
|
||||||
String outputDirectory = commandLine.getOptionValue(OUTPUT_DIRECTORY_ARG, DEFAULT_OUTPUT_DIRECTORY);
|
String outputDirectory = commandLine.getOptionValue(OUTPUT_DIRECTORY_ARG, DEFAULT_OUTPUT_DIRECTORY);
|
||||||
baseDir = new File(outputDirectory);
|
baseDir = new File(outputDirectory);
|
||||||
hostnames = Arrays.stream(commandLine.getOptionValue(HOSTNAMES_ARG, TlsConfig.DEFAULT_HOSTNAME).split(",")).map(String::trim).collect(Collectors.toList());
|
hostnames = Arrays.stream(commandLine.getOptionValue(HOSTNAMES_ARG, TlsConfig.DEFAULT_HOSTNAME).split(",")).map(String::trim).collect(Collectors.toList());
|
||||||
httpsPort = commandLine.getOptionValue(HTTPS_PORT_ARG, "");
|
httpsPort = getIntValue(commandLine, HTTPS_PORT_ARG, DEFAULT_HTTPS_PORT);
|
||||||
|
|
||||||
int numHosts = hostnames.size();
|
int numHosts = hostnames.size();
|
||||||
keyStorePasswords = Collections.unmodifiableList(getPasswords(KEY_STORE_PASSWORD_ARG, commandLine, numHosts));
|
keyStorePasswords = Collections.unmodifiableList(getPasswords(KEY_STORE_PASSWORD_ARG, commandLine, numHosts));
|
||||||
|
@ -110,8 +116,10 @@ public class TlsToolkitStandaloneCommandLine extends BaseCommandLine {
|
||||||
String nifiPropertiesFile = commandLine.getOptionValue(NIFI_PROPERTIES_FILE_ARG, "");
|
String nifiPropertiesFile = commandLine.getOptionValue(NIFI_PROPERTIES_FILE_ARG, "");
|
||||||
try {
|
try {
|
||||||
if (StringUtils.isEmpty(nifiPropertiesFile)) {
|
if (StringUtils.isEmpty(nifiPropertiesFile)) {
|
||||||
|
logger.info("No " + NIFI_PROPERTIES_FILE_ARG + " specified, using embedded one.");
|
||||||
niFiPropertiesWriterFactory = new NiFiPropertiesWriterFactory();
|
niFiPropertiesWriterFactory = new NiFiPropertiesWriterFactory();
|
||||||
} else {
|
} else {
|
||||||
|
logger.info("Using " + nifiPropertiesFile + " as template.");
|
||||||
niFiPropertiesWriterFactory = new NiFiPropertiesWriterFactory(new FileInputStream(nifiPropertiesFile));
|
niFiPropertiesWriterFactory = new NiFiPropertiesWriterFactory(new FileInputStream(nifiPropertiesFile));
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
@ -148,7 +156,7 @@ public class TlsToolkitStandaloneCommandLine extends BaseCommandLine {
|
||||||
return hostnames;
|
return hostnames;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getHttpsPort() {
|
public int getHttpsPort() {
|
||||||
return httpsPort;
|
return httpsPort;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -149,8 +149,8 @@ public class TlsToolkitStandaloneCommandLineTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testHttpsPort() throws CommandLineParseException {
|
public void testHttpsPort() throws CommandLineParseException {
|
||||||
String testPort = "8998";
|
int testPort = 8998;
|
||||||
tlsToolkitStandaloneCommandLine.parse("-p", testPort);
|
tlsToolkitStandaloneCommandLine.parse("-p", Integer.toString(testPort));
|
||||||
assertEquals(testPort, tlsToolkitStandaloneCommandLine.getHttpsPort());
|
assertEquals(testPort, tlsToolkitStandaloneCommandLine.getHttpsPort());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue