From fdb6e8f0d1303ccb6c568155ffbc096880e95dd8 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Mon, 08 Jun 2015 14:58:34 +0000
Subject: [PATCH] OPENDJ-1166 Code cleanup
---
opendj-server-legacy/src/main/java/org/opends/server/util/BuildVersion.java | 78 +---
opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliParser.java | 14
opendj-server-legacy/src/main/java/org/opends/server/util/args/LDAPConnectionArgumentParser.java | 426 +++++++++++++-------------
opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java | 440 +++++++++++---------------
4 files changed, 428 insertions(+), 530 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java b/opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java
index ceb5df6..3ae1b6c 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java
@@ -26,12 +26,10 @@
*/
package org.opends.server.admin.client.cli;
-import static com.forgerock.opendj.cli.ArgumentConstants.OPTION_LONG_ADMIN_UID;
+import static com.forgerock.opendj.cli.ArgumentConstants.*;
import static com.forgerock.opendj.cli.CliMessages.*;
-import static com.forgerock.opendj.cli.ReturnCode.CONFLICTING_ARGS;
-import static com.forgerock.opendj.cli.ReturnCode.SUCCESS;
-import static com.forgerock.opendj.cli.Utils.LINE_SEPARATOR;
-import static org.forgerock.util.Utils.closeSilently;
+import static com.forgerock.opendj.cli.ReturnCode.*;
+import static com.forgerock.opendj.cli.Utils.*;
import java.io.File;
import java.io.FileInputStream;
@@ -43,10 +41,13 @@
import java.security.cert.CertificateException;
import java.util.ArrayList;
import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.config.server.ConfigException;
import org.opends.admin.ads.util.ApplicationTrustManager;
import org.opends.server.admin.AdministrationConnector;
import org.opends.server.admin.server.ServerManagementContext;
@@ -54,7 +55,6 @@
import org.opends.server.admin.std.server.FileBasedTrustManagerProviderCfg;
import org.opends.server.admin.std.server.RootCfg;
import org.opends.server.admin.std.server.TrustManagerProviderCfg;
-import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import com.forgerock.opendj.cli.Argument;
@@ -74,106 +74,69 @@
*/
public final class SecureConnectionCliArgs
{
- /**
- * The 'hostName' global argument.
- */
+ private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
+
+ /** The 'hostName' global argument. */
public StringArgument hostNameArg;
- /**
- * The 'port' global argument.
- */
+ /** The 'port' global argument. */
public IntegerArgument portArg;
- /**
- * The 'bindDN' global argument.
- */
+ /** The 'bindDN' global argument. */
public StringArgument bindDnArg;
- /**
- * The 'adminUID' global argument.
- */
+ /** The 'adminUID' global argument. */
public StringArgument adminUidArg;
- /**
- * The 'bindPasswordFile' global argument.
- */
+ /** The 'bindPasswordFile' global argument. */
public FileBasedArgument bindPasswordFileArg;
- /**
- * The 'bindPassword' global argument.
- */
+ /** The 'bindPassword' global argument. */
public StringArgument bindPasswordArg;
- /**
- * The 'trustAllArg' global argument.
- */
+ /** The 'trustAllArg' global argument. */
public BooleanArgument trustAllArg;
- /**
- * The 'trustStore' global argument.
- */
+ /** The 'trustStore' global argument. */
public StringArgument trustStorePathArg;
- /**
- * The 'trustStorePassword' global argument.
- */
+ /** The 'trustStorePassword' global argument. */
public StringArgument trustStorePasswordArg;
- /**
- * The 'trustStorePasswordFile' global argument.
- */
+ /** The 'trustStorePasswordFile' global argument. */
public FileBasedArgument trustStorePasswordFileArg;
- /**
- * The 'keyStore' global argument.
- */
+ /** The 'keyStore' global argument. */
public StringArgument keyStorePathArg;
- /**
- * The 'keyStorePassword' global argument.
- */
+ /** The 'keyStorePassword' global argument. */
public StringArgument keyStorePasswordArg;
- /**
- * The 'keyStorePasswordFile' global argument.
- */
+ /** The 'keyStorePasswordFile' global argument. */
public FileBasedArgument keyStorePasswordFileArg;
- /**
- * The 'certNicknameArg' global argument.
- */
+ /** The 'certNicknameArg' global argument. */
public StringArgument certNicknameArg;
- /**
- * The 'useSSLArg' global argument.
- */
+ /** The 'useSSLArg' global argument. */
public BooleanArgument useSSLArg;
- /**
- * The 'useStartTLSArg' global argument.
- */
+ /** The 'useStartTLSArg' global argument. */
public BooleanArgument useStartTLSArg;
- /**
- * Argument indicating a SASL option.
- */
- public StringArgument saslOptionArg;
+ /** Argument indicating a SASL option. */
+ public StringArgument saslOptionArg;
- /**
- * Argument to specify the connection timeout.
- */
+ /** Argument to specify the connection timeout. */
public IntegerArgument connectTimeoutArg;
- /**
- * Private container for global arguments.
- */
- private LinkedHashSet<Argument> argList;
+ /** Private container for global arguments. */
+ private Set<Argument> argList;
/** The trust manager. */
private ApplicationTrustManager trustManager;
private boolean configurationInitialized;
- private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
/** Defines if the CLI always use the SSL connection type. */
private boolean alwaysSSL;
@@ -181,33 +144,34 @@
/**
* Creates a new instance of secure arguments.
*
- * @param alwaysSSL If true, always use the SSL connection type. In this case,
- * the arguments useSSL and startTLS are not present.
+ * @param alwaysSSL
+ * If true, always use the SSL connection type. In this case, the
+ * arguments useSSL and startTLS are not present.
*/
public SecureConnectionCliArgs(boolean alwaysSSL)
{
- if (alwaysSSL) {
- this.alwaysSSL = true;
- }
+ this.alwaysSSL = alwaysSSL;
}
/**
* Indicates whether or not any of the arguments are present.
*
- * @return boolean where true indicates that at least one of the
- * arguments is present
+ * @return boolean where true indicates that at least one of the arguments is
+ * present
*/
- public boolean argumentsPresent() {
- boolean present = false;
- if (argList != null) {
- for (Argument arg : argList) {
- if (arg.isPresent()) {
- present = true;
- break;
+ public boolean argumentsPresent()
+ {
+ if (argList != null)
+ {
+ for (Argument arg : argList)
+ {
+ if (arg.isPresent())
+ {
+ return true;
}
}
}
- return present;
+ return false;
}
/**
@@ -240,8 +204,8 @@
/**
* Get the bindDN which has to be used for the command.
*
- * @return The bindDN specified by the command line argument, or the
- * default value, if not specified.
+ * @return The bindDN specified by the command line argument, or the default
+ * value, if not specified.
*/
public String getBindDN()
{
@@ -256,54 +220,55 @@
* Initialize Global option.
*
* @throws ArgumentException
- * If there is a problem with any of the parameters used
- * to create this argument.
+ * If there is a problem with any of the parameters used to create
+ * this argument.
* @return a ArrayList with the options created.
*/
- public LinkedHashSet<Argument> createGlobalArguments()
- throws ArgumentException
+ public Set<Argument> createGlobalArguments() throws ArgumentException
{
- argList = new LinkedHashSet<Argument>();
+ argList = new LinkedHashSet<>();
useSSLArg = CommonArguments.getUseSSL();
- if (!alwaysSSL) {
+ if (!alwaysSSL)
+ {
argList.add(useSSLArg);
- } else {
+ }
+ else
+ {
// simulate that the useSSL arg has been given in the CLI
useSSLArg.setPresent(true);
}
useStartTLSArg = CommonArguments.getStartTLS();
- if (!alwaysSSL) {
+ if (!alwaysSSL)
+ {
argList.add(useStartTLSArg);
}
String defaultHostName;
- try {
+ try
+ {
defaultHostName = InetAddress.getLocalHost().getHostName();
- } catch (Exception e) {
- defaultHostName="Unknown (" + e + ")";
+ }
+ catch (Exception e)
+ {
+ defaultHostName = "Unknown (" + e + ")";
}
hostNameArg = CommonArguments.getHostName(defaultHostName);
argList.add(hostNameArg);
- portArg =
- CommonArguments.getPort(
- AdministrationConnector.DEFAULT_ADMINISTRATION_CONNECTOR_PORT,
- alwaysSSL ? INFO_DESCRIPTION_ADMIN_PORT.get()
- : INFO_DESCRIPTION_PORT.get());
+ portArg = CommonArguments.getPort(AdministrationConnector.DEFAULT_ADMINISTRATION_CONNECTOR_PORT,
+ alwaysSSL ? INFO_DESCRIPTION_ADMIN_PORT.get() : INFO_DESCRIPTION_PORT.get());
argList.add(portArg);
- bindDnArg = CommonArguments.getBindDN("cn=Directory Manager");
+ bindDnArg = CommonArguments.getBindDN(CliConstants.DEFAULT_ROOT_USER_DN);
argList.add(bindDnArg);
// It is up to the classes that required admin UID to make this argument
// visible and add it.
- adminUidArg = new StringArgument("adminUID", 'I',
- OPTION_LONG_ADMIN_UID, false, false, true,
- INFO_ADMINUID_PLACEHOLDER.get(),
- CliConstants.GLOBAL_ADMIN_UID, null,
- INFO_DESCRIPTION_ADMIN_UID.get());
+ adminUidArg = new StringArgument("adminUID", 'I', OPTION_LONG_ADMIN_UID, false, false, true,
+ INFO_ADMINUID_PLACEHOLDER.get(), CliConstants.GLOBAL_ADMIN_UID,
+ null, INFO_DESCRIPTION_ADMIN_UID.get());
adminUidArg.setPropertyName(OPTION_LONG_ADMIN_UID);
adminUidArg.setHidden(true);
@@ -350,8 +315,8 @@
/**
* Get the host name which has to be used for the command.
*
- * @return The host name specified by the command line argument, or
- * the default value, if not specified.
+ * @return The host name specified by the command line argument, or the
+ * default value, if not specified.
*/
public String getHostName()
{
@@ -380,85 +345,55 @@
/**
* Indication if provided global options are validate.
*
- * @param buf the LocalizableMessageBuilder to write the error messages.
+ * @param buf
+ * the LocalizableMessageBuilder to write the error messages.
* @return return code.
*/
public int validateGlobalOptions(LocalizableMessageBuilder buf)
{
- ArrayList<LocalizableMessage> errors = new ArrayList<LocalizableMessage>();
+ List<LocalizableMessage> errors = new ArrayList<>();
// Couldn't have at the same time bindPassword and bindPasswordFile
- if (bindPasswordArg.isPresent() && bindPasswordFileArg.isPresent()) {
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
- bindPasswordArg.getLongIdentifier(),
- bindPasswordFileArg.getLongIdentifier());
- errors.add(message);
+ if (bindPasswordArg.isPresent() && bindPasswordFileArg.isPresent())
+ {
+ errors.add(
+ ERR_TOOL_CONFLICTING_ARGS.get(bindPasswordArg.getLongIdentifier(), bindPasswordFileArg.getLongIdentifier()));
}
- // Couldn't have at the same time trustAll and
- // trustStore related arg
- if (trustAllArg.isPresent() && trustStorePathArg.isPresent()) {
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
- trustAllArg.getLongIdentifier(),
- trustStorePathArg.getLongIdentifier());
- errors.add(message);
+ // Couldn't have at the same time trustAll and trustStore related arg
+ if (trustAllArg.isPresent() && trustStorePathArg.isPresent())
+ {
+ errors.add(
+ ERR_TOOL_CONFLICTING_ARGS.get(trustAllArg.getLongIdentifier(), trustStorePathArg.getLongIdentifier()));
}
- if (trustAllArg.isPresent() && trustStorePasswordArg.isPresent()) {
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
- trustAllArg.getLongIdentifier(),
- trustStorePasswordArg.getLongIdentifier());
- errors.add(message);
+ if (trustAllArg.isPresent() && trustStorePasswordArg.isPresent())
+ {
+ errors.add(
+ ERR_TOOL_CONFLICTING_ARGS.get(trustAllArg.getLongIdentifier(), trustStorePasswordArg.getLongIdentifier()));
}
- if (trustAllArg.isPresent() && trustStorePasswordFileArg.isPresent()) {
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
- trustAllArg.getLongIdentifier(),
- trustStorePasswordFileArg.getLongIdentifier());
- errors.add(message);
+ if (trustAllArg.isPresent() && trustStorePasswordFileArg.isPresent())
+ {
+ errors.add(
+ ERR_TOOL_CONFLICTING_ARGS.get(trustAllArg.getLongIdentifier(), trustStorePasswordFileArg.getLongIdentifier()));
}
// Couldn't have at the same time trustStorePasswordArg and
// trustStorePasswordFileArg
- if (trustStorePasswordArg.isPresent()
- && trustStorePasswordFileArg.isPresent()) {
+ if (trustStorePasswordArg.isPresent() && trustStorePasswordFileArg.isPresent())
+ {
LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
- trustStorePasswordArg.getLongIdentifier(),
- trustStorePasswordFileArg.getLongIdentifier());
+ trustStorePasswordArg.getLongIdentifier(), trustStorePasswordFileArg.getLongIdentifier());
errors.add(message);
}
-
- if (trustStorePathArg.isPresent())
+ checkIfPathArgumentIsReadable(
+ trustStorePathArg, errors, ERR_CANNOT_READ_TRUSTSTORE.get(trustStorePathArg.getValue()));
+ checkIfPathArgumentIsReadable(
+ keyStorePathArg, errors, ERR_CANNOT_READ_KEYSTORE.get(keyStorePasswordArg.getValue()));
+ // Couldn't have at the same time startTLSArg and useSSLArg
+ if (useStartTLSArg.isPresent() && useSSLArg.isPresent())
{
- // Check that the path exists and is readable
- String value = trustStorePathArg.getValue();
- if (!canRead(trustStorePathArg.getValue()))
- {
- LocalizableMessage message = ERR_CANNOT_READ_TRUSTSTORE.get(
- value);
- errors.add(message);
- }
+ errors.add(ERR_TOOL_CONFLICTING_ARGS.get(useStartTLSArg.getLongIdentifier(), useSSLArg.getLongIdentifier()));
}
-
- if (keyStorePathArg.isPresent())
- {
- // Check that the path exists and is readable
- String value = keyStorePathArg.getValue();
- if (!canRead(trustStorePathArg.getValue()))
- {
- LocalizableMessage message = ERR_CANNOT_READ_KEYSTORE.get(
- value);
- errors.add(message);
- }
- }
-
- // Couldn't have at the same time startTLSArg and
- // useSSLArg
- if (useStartTLSArg.isPresent()
- && useSSLArg.isPresent()) {
- LocalizableMessage message = ERR_TOOL_CONFLICTING_ARGS.get(
- useStartTLSArg
- .getLongIdentifier(), useSSLArg.getLongIdentifier());
- errors.add(message);
- }
- if (errors.size() > 0)
+ if (!errors.isEmpty())
{
for (LocalizableMessage error : errors)
{
@@ -474,6 +409,15 @@
return SUCCESS.get();
}
+ private void checkIfPathArgumentIsReadable(
+ StringArgument pathArgument, List<LocalizableMessage> errors, LocalizableMessage errorMessage)
+ {
+ if (pathArgument.isPresent() && !canRead(pathArgument.getValue()))
+ {
+ errors.add(errorMessage);
+ }
+ }
+
/**
* Indicate if the SSL mode is required.
*
@@ -513,76 +457,62 @@
{
if (trustManager == null)
{
- KeyStore truststore = null ;
+ KeyStore truststore = null;
if (trustAllArg.isPresent())
{
// Running a null TrustManager will force createLdapsContext and
// createStartTLSContext to use a bindTrustManager.
- return null ;
+ return null;
}
- else
- if (trustStorePathArg.isPresent())
+ else if (trustStorePathArg.isPresent())
+ {
+ try (final FileInputStream fos = new FileInputStream(trustStorePathArg.getValue()))
{
- FileInputStream fos = null;
-
- try
+ String trustStorePasswordStringValue = null;
+ if (trustStorePasswordArg.isPresent())
{
- fos = new FileInputStream(trustStorePathArg.getValue());
- String trustStorePasswordStringValue = null;
- char[] trustStorePasswordValue = null;
- if (trustStorePasswordArg.isPresent())
- {
- trustStorePasswordStringValue = trustStorePasswordArg.getValue();
- }
- else if (trustStorePasswordFileArg.isPresent())
- {
- trustStorePasswordStringValue =
- trustStorePasswordFileArg.getValue();
- }
-
- if (trustStorePasswordStringValue != null)
- {
- trustStorePasswordStringValue = System
- .getProperty("javax.net.ssl.trustStorePassword");
- }
-
-
- if (trustStorePasswordStringValue != null)
- {
- trustStorePasswordValue =
- trustStorePasswordStringValue.toCharArray();
- }
-
- truststore = KeyStore.getInstance(KeyStore.getDefaultType());
- truststore.load(fos, trustStorePasswordValue);
+ trustStorePasswordStringValue = trustStorePasswordArg.getValue();
}
- catch (KeyStoreException | NoSuchAlgorithmException | CertificateException | IOException e)
+ else if (trustStorePasswordFileArg.isPresent())
{
- // Nothing to do: if this occurs we will systematically refuse the
- // certificates. Maybe we should avoid this and be strict, but we
- // are in a best effort mode.
- logger.warn(LocalizableMessage.raw("Error with the truststore"), e);
+ trustStorePasswordStringValue = trustStorePasswordFileArg.getValue();
}
- finally
+
+ if (trustStorePasswordStringValue != null)
{
- closeSilently(fos);
+ trustStorePasswordStringValue = System.getProperty("javax.net.ssl.trustStorePassword");
}
+
+ char[] trustStorePasswordValue = null;
+ if (trustStorePasswordStringValue != null)
+ {
+ trustStorePasswordValue = trustStorePasswordStringValue.toCharArray();
+ }
+
+ truststore = KeyStore.getInstance(KeyStore.getDefaultType());
+ truststore.load(fos, trustStorePasswordValue);
}
+ catch (KeyStoreException | NoSuchAlgorithmException | CertificateException | IOException e)
+ {
+ // Nothing to do: if this occurs we will systematically refuse the
+ // certificates. Maybe we should avoid this and be strict, but we
+ // are in a best effort mode.
+ logger.warn(LocalizableMessage.raw("Error with the truststore"), e);
+ }
+ }
trustManager = new ApplicationTrustManager(truststore);
}
return trustManager;
}
-
-
/**
- * Returns {@code true} if we can read on the provided path and
- * {@code false} otherwise.
+ * Returns {@code true} if we can read on the provided path and {@code false}
+ * otherwise.
*
* @param path
* the path.
- * @return {@code true} if we can read on the provided path and
- * {@code false} otherwise.
+ * @return {@code true} if we can read on the provided path and {@code false}
+ * otherwise.
*/
private boolean canRead(String path)
{
@@ -592,8 +522,8 @@
/**
* Returns the absolute path of the trust store file that appears on the
- * config. Returns {@code null} if the trust store is not defined or it
- * does not exist.
+ * config. Returns {@code null} if the trust store is not defined or it does
+ * not exist.
*
* @return the absolute path of the trust store file that appears on the
* config.
@@ -608,29 +538,30 @@
boolean couldInitializeConfig = configurationInitialized;
// Initialization for admin framework
- if (!configurationInitialized) {
+ if (!configurationInitialized)
+ {
couldInitializeConfig = initializeConfiguration();
}
if (couldInitializeConfig)
{
// Get the Directory Server configuration handler and use it.
- RootCfg root =
- ServerManagementContext.getInstance().getRootConfiguration();
+ RootCfg root = ServerManagementContext.getInstance().getRootConfiguration();
administrationConnectorCfg = root.getAdministrationConnector();
- String trustManagerStr =
- administrationConnectorCfg.getTrustManagerProvider();
+ String trustManagerStr = administrationConnectorCfg.getTrustManagerProvider();
trustManagerCfg = root.getTrustManagerProvider(trustManagerStr);
- if (trustManagerCfg instanceof FileBasedTrustManagerProviderCfg) {
- FileBasedTrustManagerProviderCfg fileBasedTrustManagerCfg =
- (FileBasedTrustManagerProviderCfg) trustManagerCfg;
+ if (trustManagerCfg instanceof FileBasedTrustManagerProviderCfg)
+ {
+ FileBasedTrustManagerProviderCfg fileBasedTrustManagerCfg = (FileBasedTrustManagerProviderCfg) trustManagerCfg;
String truststoreFile = fileBasedTrustManagerCfg.getTrustStoreFile();
// Check the file
- if (truststoreFile.startsWith(File.separator)) {
+ if (truststoreFile.startsWith(File.separator))
+ {
truststoreFileAbsolute = truststoreFile;
- } else {
- truststoreFileAbsolute =
- DirectoryServer.getInstanceRoot() + File.separator + truststoreFile;
+ }
+ else
+ {
+ truststoreFileAbsolute = DirectoryServer.getInstanceRoot() + File.separator + truststoreFile;
}
File f = new File(truststoreFileAbsolute);
if (!f.exists() || !f.canRead() || f.isDirectory())
@@ -663,36 +594,40 @@
*/
public int getAdminPortFromConfig() throws ConfigException
{
- int port;
// Initialization for admin framework
boolean couldInitializeConfiguration = configurationInitialized;
- if (!configurationInitialized) {
+ if (!configurationInitialized)
+ {
couldInitializeConfiguration = initializeConfiguration();
}
if (couldInitializeConfiguration)
{
- RootCfg root =
- ServerManagementContext.getInstance().getRootConfiguration();
- port = root.getAdministrationConnector().getListenPort();
+ RootCfg root = ServerManagementContext.getInstance().getRootConfiguration();
+ return root.getAdministrationConnector().getListenPort();
}
else
{
- port = AdministrationConnector.DEFAULT_ADMINISTRATION_CONNECTOR_PORT;
+ return AdministrationConnector.DEFAULT_ADMINISTRATION_CONNECTOR_PORT;
}
- return port;
}
- private boolean initializeConfiguration() {
+ private boolean initializeConfiguration()
+ {
// check if the initialization is required
- try {
- ServerManagementContext.getInstance().getRootConfiguration().
- getAdministrationConnector();
- } catch (java.lang.Throwable th) {
- try {
+ try
+ {
+ ServerManagementContext.getInstance().getRootConfiguration().getAdministrationConnector();
+ }
+ catch (java.lang.Throwable th)
+ {
+ try
+ {
DirectoryServer.bootstrapClient();
DirectoryServer.initializeJMX();
DirectoryServer.getInstance().initializeConfiguration();
- } catch (Exception ex) {
+ }
+ catch (Exception ex)
+ {
// do nothing
return false;
}
@@ -712,17 +647,21 @@
public int getPortFromConfig()
{
int portNumber;
- if (alwaysSSL()) {
- portNumber =
- AdministrationConnector.DEFAULT_ADMINISTRATION_CONNECTOR_PORT;
+ if (alwaysSSL())
+ {
+ portNumber = AdministrationConnector.DEFAULT_ADMINISTRATION_CONNECTOR_PORT;
// Try to get the port from the config file
try
{
portNumber = getAdminPortFromConfig();
- } catch (ConfigException ex) {
+ }
+ catch (ConfigException ex)
+ {
// Nothing to do
}
- } else {
+ }
+ else
+ {
portNumber = CliConstants.DEFAULT_SSL_PORT;
}
return portNumber;
@@ -737,8 +676,7 @@
*/
public void initArgumentsWithConfiguration() throws ConfigException
{
- int portNumber = getPortFromConfig();
- portArg.setDefaultValue(String.valueOf(portNumber));
+ portArg.setDefaultValue(String.valueOf(getPortFromConfig()));
String truststoreFileAbsolute = getTruststoreFileFromConfig();
if (truststoreFileAbsolute != null)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliParser.java b/opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliParser.java
index f352c5e..693d31e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliParser.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/admin/client/cli/SecureConnectionCliParser.java
@@ -28,16 +28,14 @@
package org.opends.server.admin.client.cli;
import static com.forgerock.opendj.cli.CliMessages.*;
-import static com.forgerock.opendj.cli.Utils.LINE_SEPARATOR;
-import static com.forgerock.opendj.cli.Utils.MAX_LINE_WIDTH;
-import static com.forgerock.opendj.cli.Utils.wrapText;
-import static com.forgerock.opendj.cli.ReturnCode.CONFLICTING_ARGS;
+import static com.forgerock.opendj.cli.ReturnCode.*;
+import static com.forgerock.opendj.cli.Utils.*;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.Collection;
-import java.util.LinkedHashSet;
+import java.util.Set;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
@@ -241,12 +239,10 @@
* to create this argument.
* @return a ArrayList with the options created.
*/
- protected LinkedHashSet<Argument> createGlobalArguments(
- OutputStream outStream, boolean alwaysSSL)
- throws ArgumentException
+ protected Set<Argument> createGlobalArguments(OutputStream outStream, boolean alwaysSSL) throws ArgumentException
{
secureArgsList = new SecureConnectionCliArgs(alwaysSSL);
- LinkedHashSet<Argument> set = secureArgsList.createGlobalArguments();
+ Set<Argument> set = secureArgsList.createGlobalArguments();
showUsageArg = CommonArguments.getShowUsage();
setUsageArgument(showUsageArg, outStream);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/util/BuildVersion.java b/opendj-server-legacy/src/main/java/org/opends/server/util/BuildVersion.java
index cc50943..5045eb4 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/util/BuildVersion.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/util/BuildVersion.java
@@ -22,22 +22,20 @@
*
*
* Copyright 2008 Sun Microsystems, Inc.
- * Portions copyright 2013-2014 ForgeRock AS.
+ * Portions copyright 2013-2015 ForgeRock AS.
*/
package org.opends.server.util;
-import static org.opends.messages.ToolMessages.ERR_BUILDVERSION_NOT_FOUND;
-import static org.opends.messages.ToolMessages.ERR_BUILDVERSION_MALFORMED;
-import static org.opends.messages.ToolMessages.ERR_BUILDVERSION_MISMATCH;
-import static org.opends.server.config.ConfigConstants.CONFIG_DIR_NAME;
-import static org.forgerock.util.Utils.closeSilently;
+import static org.opends.messages.ToolMessages.*;
+import static org.opends.server.config.ConfigConstants.*;
import java.io.BufferedReader;
-import java.io.File;
import java.io.FileReader;
import java.io.IOException;
+import java.nio.file.Paths;
import java.util.Arrays;
+import org.forgerock.util.Utils;
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.InitializationException;
@@ -78,37 +76,23 @@
*/
public static BuildVersion instanceVersion() throws InitializationException
{
- final String buildInfo =
- DirectoryServer.getInstanceRoot() + File.separator + CONFIG_DIR_NAME
- + File.separator + "buildinfo";
- BufferedReader reader = null;
- try
+ final String buildInfo = Paths.get(DirectoryServer.getInstanceRoot(), CONFIG_DIR_NAME, "buildinfo").toString();
+ try (final BufferedReader reader = new BufferedReader(new FileReader(buildInfo)))
{
- reader = new BufferedReader(new FileReader(buildInfo));
final String s = reader.readLine();
- if (s != null)
+ if (s == null)
{
- return valueOf(s);
+ throw new InitializationException(ERR_BUILDVERSION_MALFORMED.get(buildInfo));
}
- else
- {
- throw new InitializationException(ERR_BUILDVERSION_MALFORMED
- .get(buildInfo));
- }
+ return valueOf(s);
}
catch (IOException e)
{
- throw new InitializationException(ERR_BUILDVERSION_NOT_FOUND
- .get(buildInfo));
+ throw new InitializationException(ERR_BUILDVERSION_NOT_FOUND.get(buildInfo));
}
catch (final IllegalArgumentException e)
{
- throw new InitializationException(ERR_BUILDVERSION_MALFORMED
- .get(buildInfo));
- }
- finally
- {
- closeSilently(reader);
+ throw new InitializationException(ERR_BUILDVERSION_MALFORMED.get(buildInfo));
}
}
@@ -120,11 +104,10 @@
*/
public static void checkVersionMismatch() throws InitializationException
{
- if (!BuildVersion.binaryVersion().toString().equals(
- BuildVersion.instanceVersion().toString()))
+ if (!BuildVersion.binaryVersion().toString().equals(BuildVersion.instanceVersion().toString()))
{
- throw new InitializationException(ERR_BUILDVERSION_MISMATCH.get(
- BuildVersion.binaryVersion(), BuildVersion.instanceVersion()));
+ throw new InitializationException(
+ ERR_BUILDVERSION_MISMATCH.get(BuildVersion.binaryVersion(), BuildVersion.instanceVersion()));
}
}
@@ -142,8 +125,7 @@
* @throws IllegalArgumentException
* If the string does not contain a parsable build version.
*/
- public static BuildVersion valueOf(final String s)
- throws IllegalArgumentException
+ public static BuildVersion valueOf(final String s) throws IllegalArgumentException
{
final String[] fields = s.split("\\.");
if (fields.length != 4)
@@ -169,8 +151,7 @@
* @param rev
* VCS revision number.
*/
- public BuildVersion(final int major, final int minor, final int point,
- final long rev)
+ public BuildVersion(final int major, final int minor, final int point, final long rev)
{
this.major = major;
this.minor = minor;
@@ -178,7 +159,7 @@
this.rev = rev;
}
- /** {@inheritDoc} */
+ @Override
public int compareTo(final BuildVersion version)
{
if (major == version.major)
@@ -213,7 +194,7 @@
return 1;
}
- /** {@inheritDoc} */
+ @Override
public boolean equals(final Object obj)
{
if (this == obj)
@@ -223,8 +204,7 @@
else if (obj instanceof BuildVersion)
{
final BuildVersion other = (BuildVersion) obj;
- return major == other.major && minor == other.minor
- && point == other.point && rev == other.rev;
+ return major == other.major && minor == other.minor && point == other.point && rev == other.rev;
}
else
{
@@ -272,25 +252,15 @@
return rev;
}
- /** {@inheritDoc} */
+ @Override
public int hashCode()
{
- return Arrays.hashCode(new int[] { major, minor, point, (int) (rev >>> 32),
- (int) (rev & 0xFFFFL) });
+ return Arrays.hashCode(new int[] { major, minor, point, (int) (rev >>> 32), (int) (rev & 0xFFFFL) });
}
- /** {@inheritDoc} */
+ @Override
public String toString()
{
- final StringBuilder builder = new StringBuilder();
- builder.append(major);
- builder.append('.');
- builder.append(minor);
- builder.append('.');
- builder.append(point);
- builder.append('.');
- builder.append(rev);
- return builder.toString();
+ return Utils.joinAsString(".", major, minor, point, rev);
}
-
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/util/args/LDAPConnectionArgumentParser.java b/opendj-server-legacy/src/main/java/org/opends/server/util/args/LDAPConnectionArgumentParser.java
index 36fe98b..e55c94a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/util/args/LDAPConnectionArgumentParser.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/util/args/LDAPConnectionArgumentParser.java
@@ -26,13 +26,13 @@
*/
package org.opends.server.util.args;
-import static com.forgerock.opendj.cli.Utils.*;
-
import static org.opends.messages.ToolMessages.*;
+import static com.forgerock.opendj.cli.Utils.*;
+
import java.io.PrintStream;
-import java.util.LinkedHashSet;
import java.util.LinkedList;
+import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import javax.net.ssl.SSLException;
@@ -61,123 +61,116 @@
* Creates an argument parser pre-populated with arguments for specifying
* information for opening and LDAPConnection an LDAP connection.
*/
-public class LDAPConnectionArgumentParser extends ArgumentParser {
+public class LDAPConnectionArgumentParser extends ArgumentParser
+{
private SecureConnectionCliArgs args;
/**
- * Creates a new instance of this argument parser with no arguments.
- * Unnamed trailing arguments will not be allowed.
+ * Creates a new instance of this argument parser with no arguments. Unnamed
+ * trailing arguments will not be allowed.
*
- * @param mainClassName The fully-qualified name of the Java
- * class that should be invoked to launch
- * the program with which this argument
- * parser is associated.
- * @param toolDescription A human-readable description for the
- * tool, which will be included when
- * displaying usage information.
- * @param longArgumentsCaseSensitive Indicates whether long arguments should
- * @param argumentGroup Group to which LDAP arguments will be
- * added to the parser. May be null to
- * indicate that arguments should be
- * added to the default group
- * @param alwaysSSL If true, always use the SSL connection type. In this case,
- * the arguments useSSL and startTLS are not present.
- */
- public LDAPConnectionArgumentParser(String mainClassName,
- LocalizableMessage toolDescription,
- boolean longArgumentsCaseSensitive,
- ArgumentGroup argumentGroup,
- boolean alwaysSSL) {
+ * @param mainClassName
+ * The fully-qualified name of the Java class that should be invoked
+ * to launch the program with which this argument parser is
+ * associated.
+ * @param toolDescription
+ * A human-readable description for the tool, which will be included
+ * when displaying usage information.
+ * @param longArgumentsCaseSensitive
+ * Indicates whether long arguments should
+ * @param argumentGroup
+ * Group to which LDAP arguments will be added to the parser. May be
+ * null to indicate that arguments should be added to the default
+ * group
+ * @param alwaysSSL
+ * If true, always use the SSL connection type. In this case, the
+ * arguments useSSL and startTLS are not present.
+ */
+ public LDAPConnectionArgumentParser(String mainClassName, LocalizableMessage toolDescription,
+ boolean longArgumentsCaseSensitive, ArgumentGroup argumentGroup, boolean alwaysSSL)
+ {
super(mainClassName, toolDescription, longArgumentsCaseSensitive);
addLdapConnectionArguments(argumentGroup, alwaysSSL);
setVersionHandler(new DirectoryServerVersionHandler());
}
/**
- * Indicates whether or not the user has indicated that they would like
- * to perform a remote operation based on the arguments.
+ * Indicates whether or not the user has indicated that they would like to
+ * perform a remote operation based on the arguments.
*
- * @return true if the user wants to perform a remote operation;
- * false otherwise
+ * @return true if the user wants to perform a remote operation; false
+ * otherwise
*/
- public boolean connectionArgumentsPresent() {
+ public boolean connectionArgumentsPresent()
+ {
return args != null && args.argumentsPresent();
}
/**
* Creates a new LDAPConnection and invokes a connect operation using
- * information provided in the parsed set of arguments that were provided
- * by the user.
+ * information provided in the parsed set of arguments that were provided by
+ * the user.
*
- * @param out stream to write messages
- * @param err stream to write error messages
+ * @param out
+ * stream to write messages
+ * @param err
+ * stream to write error messages
* @return LDAPConnection created by this class from parsed arguments
- * @throws LDAPConnectionException if there was a problem connecting
- * to the server indicated by the input arguments
- * @throws ArgumentException if there was a problem processing the input
- * arguments
+ * @throws LDAPConnectionException
+ * if there was a problem connecting to the server indicated by the
+ * input arguments
+ * @throws ArgumentException
+ * if there was a problem processing the input arguments
*/
- public LDAPConnection connect(PrintStream out, PrintStream err)
- throws LDAPConnectionException, ArgumentException
+ public LDAPConnection connect(PrintStream out, PrintStream err) throws LDAPConnectionException, ArgumentException
{
return connect(this.args, out, err);
}
-
/**
* Creates a new LDAPConnection and invokes a connect operation using
- * information provided in the parsed set of arguments that were provided
- * by the user.
+ * information provided in the parsed set of arguments that were provided by
+ * the user.
*
- * @param args with which to connect
- * @param out stream to write messages
- * @param err stream to write error messages
+ * @param args
+ * with which to connect
+ * @param out
+ * stream to write messages
+ * @param err
+ * stream to write error messages
* @return LDAPConnection created by this class from parsed arguments
- * @throws LDAPConnectionException if there was a problem connecting
- * to the server indicated by the input arguments
- * @throws ArgumentException if there was a problem processing the input
- * arguments
+ * @throws LDAPConnectionException
+ * if there was a problem connecting to the server indicated by the
+ * input arguments
+ * @throws ArgumentException
+ * if there was a problem processing the input arguments
*/
- private LDAPConnection connect(SecureConnectionCliArgs args,
- PrintStream out, PrintStream err)
- throws LDAPConnectionException, ArgumentException
+ private LDAPConnection connect(SecureConnectionCliArgs args, PrintStream out, PrintStream err)
+ throws LDAPConnectionException, ArgumentException
{
// If both a bind password and bind password file were provided, then return
// an error.
- if (args.bindPasswordArg.isPresent() &&
- args.bindPasswordFileArg.isPresent())
+ if (args.bindPasswordArg.isPresent() && args.bindPasswordFileArg.isPresent())
{
- LocalizableMessage message = ERR_LDAP_CONN_MUTUALLY_EXCLUSIVE_ARGUMENTS.get(
- args.bindPasswordArg.getLongIdentifier(),
- args.bindPasswordFileArg.getLongIdentifier());
- err.println(wrapText(message, MAX_LINE_WIDTH));
- throw new ArgumentException(message);
+ printAndThrowException(err, ERR_LDAP_CONN_MUTUALLY_EXCLUSIVE_ARGUMENTS.get(
+ args.bindPasswordArg.getLongIdentifier(), args.bindPasswordFileArg.getLongIdentifier()));
}
-
// If both a key store password and key store password file were provided,
// then return an error.
- if (args.keyStorePasswordArg.isPresent() &&
- args.keyStorePasswordFileArg.isPresent())
+ if (args.keyStorePasswordArg.isPresent() && args.keyStorePasswordFileArg.isPresent())
{
- LocalizableMessage message = ERR_LDAP_CONN_MUTUALLY_EXCLUSIVE_ARGUMENTS.get(
- args.keyStorePasswordArg.getLongIdentifier(),
- args.keyStorePasswordFileArg.getLongIdentifier());
- throw new ArgumentException(message);
+ printAndThrowException(err, ERR_LDAP_CONN_MUTUALLY_EXCLUSIVE_ARGUMENTS.get(
+ args.keyStorePasswordArg.getLongIdentifier(), args.keyStorePasswordFileArg.getLongIdentifier()));
}
-
// If both a trust store password and trust store password file were
// provided, then return an error.
- if (args.trustStorePasswordArg.isPresent() &&
- args.trustStorePasswordFileArg.isPresent())
+ if (args.trustStorePasswordArg.isPresent() && args.trustStorePasswordFileArg.isPresent())
{
- LocalizableMessage message = ERR_LDAP_CONN_MUTUALLY_EXCLUSIVE_ARGUMENTS.get(
- args.trustStorePasswordArg.getLongIdentifier(),
- args.trustStorePasswordFileArg.getLongIdentifier());
- err.println(wrapText(message, MAX_LINE_WIDTH));
- throw new ArgumentException(message);
+ printAndThrowException(err, ERR_LDAP_CONN_MUTUALLY_EXCLUSIVE_ARGUMENTS.get(
+ args.trustStorePasswordArg.getLongIdentifier(), args.trustStorePasswordFileArg.getLongIdentifier()));
}
// Create the LDAP connection options object, which will be used to
@@ -186,18 +179,14 @@
LDAPConnectionOptions connectionOptions = new LDAPConnectionOptions();
connectionOptions.setVersionNumber(3);
-
// See if we should use SSL or StartTLS when establishing the connection.
// If so, then make sure only one of them was specified.
if (args.useSSLArg.isPresent())
{
if (args.useStartTLSArg.isPresent())
{
- LocalizableMessage message = ERR_LDAP_CONN_MUTUALLY_EXCLUSIVE_ARGUMENTS.get(
- args.useSSLArg.getLongIdentifier(),
- args.useSSLArg.getLongIdentifier());
- err.println(wrapText(message, MAX_LINE_WIDTH));
- throw new ArgumentException(message);
+ printAndThrowException(err, ERR_LDAP_CONN_MUTUALLY_EXCLUSIVE_ARGUMENTS.get(
+ args.useSSLArg.getLongIdentifier(), args.useSSLArg.getLongIdentifier()));
}
connectionOptions.setUseSSL(true);
}
@@ -206,7 +195,6 @@
connectionOptions.setStartTLS(true);
}
-
// If we should blindly trust any certificate, then install the appropriate
// SSL connection factory.
if (args.useSSLArg.isPresent() || args.useStartTLSArg.isPresent())
@@ -225,44 +213,37 @@
SSLConnectionFactory sslConnectionFactory = new SSLConnectionFactory();
sslConnectionFactory.init(args.trustAllArg.isPresent(),
- args.keyStorePathArg.getValue(),
- args.keyStorePasswordArg.getValue(),
- clientAlias,
- args.trustStorePathArg.getValue(),
- args.trustStorePasswordArg.getValue());
-
+ args.keyStorePathArg.getValue(),
+ args.keyStorePasswordArg.getValue(),
+ clientAlias,
+ args.trustStorePathArg.getValue(),
+ args.trustStorePasswordArg.getValue());
connectionOptions.setSSLConnectionFactory(sslConnectionFactory);
}
catch (SSLConnectionException sce)
{
- LocalizableMessage message =
- ERR_LDAP_CONN_CANNOT_INITIALIZE_SSL.get(sce.getMessage());
- err.println(wrapText(message, MAX_LINE_WIDTH));
+ err.println(wrapText(ERR_LDAP_CONN_CANNOT_INITIALIZE_SSL.get(sce.getMessage()), MAX_LINE_WIDTH));
}
}
-
// If one or more SASL options were provided, then make sure that one of
// them was "mech" and specified a valid SASL mechanism.
if (args.saslOptionArg.isPresent())
{
- String mechanism = null;
- LinkedList<String> options = new LinkedList<String>();
+ String mechanism = null;
+ LinkedList<String> options = new LinkedList<>();
for (String s : args.saslOptionArg.getValues())
{
int equalPos = s.indexOf('=');
if (equalPos <= 0)
{
- LocalizableMessage message = ERR_LDAP_CONN_CANNOT_PARSE_SASL_OPTION.get(s);
- err.println(wrapText(message, MAX_LINE_WIDTH));
- throw new ArgumentException(message);
+ printAndThrowException(err, ERR_LDAP_CONN_CANNOT_PARSE_SASL_OPTION.get(s));
}
else
{
- String name = s.substring(0, equalPos);
-
- if (name.equalsIgnoreCase("mech"))
+ String name = s.substring(0, equalPos);
+ if ("mech".equalsIgnoreCase(name))
{
mechanism = s;
}
@@ -275,13 +256,10 @@
if (mechanism == null)
{
- LocalizableMessage message = ERR_LDAP_CONN_NO_SASL_MECHANISM.get();
- err.println(wrapText(message, MAX_LINE_WIDTH));
- throw new ArgumentException(message);
+ printAndThrowException(err, ERR_LDAP_CONN_NO_SASL_MECHANISM.get());
}
connectionOptions.setSASLMechanism(mechanism);
-
for (String option : options)
{
connectionOptions.addSASLProperty(option);
@@ -290,114 +268,123 @@
int timeout = args.connectTimeoutArg.getIntValue();
+ final String passwordValue = getPasswordValue(
+ args.bindPasswordArg, args.bindPasswordFileArg, args.bindDnArg, out, err);
return connect(
args.hostNameArg.getValue(),
args.portArg.getIntValue(),
args.bindDnArg.getValue(),
- getPasswordValue(args.bindPasswordArg,
- args.bindPasswordFileArg,
- args.bindDnArg, out, err),
+ passwordValue,
connectionOptions, timeout, out, err);
}
- /**
- * Creates a connection using a console interaction that will be used
- * to potentially interact with the user to prompt for necessary
- * information for establishing the connection.
- *
- * @param ui user interaction for prompting the user
- * @param out stream to write messages
- * @param err stream to write error messages
- * @return LDAPConnection created by this class from parsed arguments
- * @throws LDAPConnectionException if there was a problem connecting
- * to the server indicated by the input arguments
- */
- public LDAPConnection connect(LDAPConnectionConsoleInteraction ui,
- PrintStream out, PrintStream err)
- throws LDAPConnectionException
+ private void printAndThrowException(PrintStream err, LocalizableMessage message) throws ArgumentException
{
- LDAPConnection connection = null;
- try {
+ err.println(wrapText(message, MAX_LINE_WIDTH));
+ throw new ArgumentException(message);
+ }
+
+ /**
+ * Creates a connection using a console interaction that will be used to
+ * potentially interact with the user to prompt for necessary information for
+ * establishing the connection.
+ *
+ * @param ui
+ * user interaction for prompting the user
+ * @param out
+ * stream to write messages
+ * @param err
+ * stream to write error messages
+ * @return LDAPConnection created by this class from parsed arguments
+ * @throws LDAPConnectionException
+ * if there was a problem connecting to the server indicated by the
+ * input arguments
+ */
+ public LDAPConnection connect(LDAPConnectionConsoleInteraction ui, PrintStream out, PrintStream err)
+ throws LDAPConnectionException
+ {
+ try
+ {
ui.run();
LDAPConnectionOptions options = new LDAPConnectionOptions();
options.setVersionNumber(3);
- connection = connect(
- ui.getHostName(),
- ui.getPortNumber(),
- ui.getBindDN(),
- ui.getBindPassword(),
- ui.populateLDAPOptions(options),
- ui.getConnectTimeout(),
- out, err);
- } catch (ArgumentException | OpenDsException e) {
- if ((e.getCause() != null) && (e.getCause().getCause() != null) &&
- e.getCause().getCause() instanceof SSLException) {
+ return connect(ui.getHostName(), ui.getPortNumber(), ui.getBindDN(),
+ ui.getBindPassword(), ui.populateLDAPOptions(options), ui.getConnectTimeout(), out, err);
+ }
+ catch (ArgumentException | OpenDsException e)
+ {
+ if (e.getCause() != null && e.getCause().getCause() != null && e.getCause().getCause() instanceof SSLException)
+ {
err.println(ERR_TASKINFO_LDAP_EXCEPTION_SSL.get(ui.getHostName(), ui.getPortNumber()));
- } else {
+ }
+ else
+ {
err.println(e.getMessageObject());
}
}
- return connection;
+ return null;
}
-
/**
* Creates a connection from information provided.
*
- * @param host of the server
- * @param port of the server
- * @param bindDN with which to connect
- * @param bindPw with which to connect
- * @param options with which to connect
- * @param out stream to write messages
- * @param err stream to write error messages
+ * @param host
+ * of the server
+ * @param port
+ * of the server
+ * @param bindDN
+ * with which to connect
+ * @param bindPw
+ * with which to connect
+ * @param options
+ * with which to connect
+ * @param out
+ * stream to write messages
+ * @param err
+ * stream to write error messages
* @return LDAPConnection created by this class from parsed arguments
- * @throws LDAPConnectionException if there was a problem connecting
- * to the server indicated by the input arguments
+ * @throws LDAPConnectionException
+ * if there was a problem connecting to the server indicated by the
+ * input arguments
*/
- public LDAPConnection connect(String host, int port,
- String bindDN, String bindPw,
- LDAPConnectionOptions options,
- PrintStream out,
- PrintStream err)
- throws LDAPConnectionException
+ public LDAPConnection connect(String host, int port, String bindDN, String bindPw, LDAPConnectionOptions options,
+ PrintStream out, PrintStream err) throws LDAPConnectionException
{
return connect(host, port, bindDN, bindPw, options, 0, out, err);
}
-
/**
* Creates a connection from information provided.
*
- * @param host of the server
- * @param port of the server
- * @param bindDN with which to connect
- * @param bindPw with which to connect
- * @param options with which to connect
- * @param timeout the timeout to establish the connection in milliseconds.
- * Use {@code 0} to express no timeout
- * @param out stream to write messages
- * @param err stream to write error messages
+ * @param host
+ * of the server
+ * @param port
+ * of the server
+ * @param bindDN
+ * with which to connect
+ * @param bindPw
+ * with which to connect
+ * @param options
+ * with which to connect
+ * @param timeout
+ * the timeout to establish the connection in milliseconds. Use
+ * {@code 0} to express no timeout
+ * @param out
+ * stream to write messages
+ * @param err
+ * stream to write error messages
* @return LDAPConnection created by this class from parsed arguments
- * @throws LDAPConnectionException if there was a problem connecting
- * to the server indicated by the input arguments
+ * @throws LDAPConnectionException
+ * if there was a problem connecting to the server indicated by the
+ * input arguments
*/
- public LDAPConnection connect(String host, int port,
- String bindDN, String bindPw,
- LDAPConnectionOptions options,
- int timeout,
- PrintStream out,
- PrintStream err)
- throws LDAPConnectionException
+ public LDAPConnection connect(String host, int port, String bindDN, String bindPw, LDAPConnectionOptions options,
+ int timeout, PrintStream out, PrintStream err) throws LDAPConnectionException
{
// Attempt to connect and authenticate to the Directory Server.
AtomicInteger nextMessageID = new AtomicInteger(1);
-
- LDAPConnection connection = new LDAPConnection(
- host, port, options, out, err);
-
+ LDAPConnection connection = new LDAPConnection(host, port, options, out, err);
connection.connectToHost(bindDN, bindPw, nextMessageID, timeout);
-
return connection;
}
@@ -406,29 +393,31 @@
*
* @return arguments for this parser.
*/
- public SecureConnectionCliArgs getArguments() {
+ public SecureConnectionCliArgs getArguments()
+ {
return args;
}
/**
* Commodity method that retrieves the password value analyzing the contents
- * of a string argument and of a file based argument. It assumes that the
- * arguments have already been parsed and validated.
- * If the string is a dash, or no password is available, it will prompt for
- * it on the command line.
+ * of a string argument and of a file based argument. It assumes that the
+ * arguments have already been parsed and validated. If the string is a dash,
+ * or no password is available, it will prompt for it on the command line.
*
- * @param bindPwdArg the string argument for the password.
- * @param bindPwdFileArg the file based argument for the password.
- * @param bindDnArg the string argument for the bindDN.
- * @param out stream to write message.
- * @param err stream to write error message.
+ * @param bindPwdArg
+ * the string argument for the password.
+ * @param bindPwdFileArg
+ * the file based argument for the password.
+ * @param bindDnArg
+ * the string argument for the bindDN.
+ * @param out
+ * stream to write message.
+ * @param err
+ * stream to write error message.
* @return the password value.
*/
- public static String getPasswordValue(StringArgument bindPwdArg,
- FileBasedArgument bindPwdFileArg,
- StringArgument bindDnArg,
- PrintStream out,
- PrintStream err)
+ public static String getPasswordValue(StringArgument bindPwdArg, FileBasedArgument bindPwdFileArg,
+ StringArgument bindDnArg, PrintStream out, PrintStream err)
{
try
{
@@ -443,28 +432,30 @@
/**
* Commodity method that retrieves the password value analyzing the contents
- * of a string argument and of a file based argument. It assumes that the
- * arguments have already been parsed and validated.
- * If the string is a dash, or no password is available, it will prompt for
- * it on the command line.
+ * of a string argument and of a file based argument. It assumes that the
+ * arguments have already been parsed and validated. If the string is a dash,
+ * or no password is available, it will prompt for it on the command line.
*
- * @param bindPassword the string argument for the password.
- * @param bindPasswordFile the file based argument for the password.
- * @param bindDNValue the string value for the bindDN.
- * @param out stream to write message.
- * @param err stream to write error message.
+ * @param bindPassword
+ * the string argument for the password.
+ * @param bindPasswordFile
+ * the file based argument for the password.
+ * @param bindDNValue
+ * the string value for the bindDN.
+ * @param out
+ * stream to write message.
+ * @param err
+ * stream to write error message.
* @return the password value.
- * @throws ClientException if the password cannot be read
+ * @throws ClientException
+ * if the password cannot be read
*/
- public static String getPasswordValue(StringArgument bindPassword,
- FileBasedArgument bindPasswordFile, String bindDNValue, PrintStream out,
- PrintStream err) throws ClientException
+ public static String getPasswordValue(StringArgument bindPassword, FileBasedArgument bindPasswordFile,
+ String bindDNValue, PrintStream out, PrintStream err) throws ClientException
{
String bindPasswordValue = bindPassword.getValue();
if ("-".equals(bindPasswordValue)
- || (!bindPasswordFile.isPresent()
- && bindDNValue != null
- && bindPasswordValue == null))
+ || (!bindPasswordFile.isPresent() && bindDNValue != null && bindPasswordValue == null))
{
// read the password from the stdin.
out.print(INFO_LDAPAUTH_PASSWORD_PROMPT.get(bindDNValue));
@@ -473,8 +464,7 @@
// an empty password to the server.
while (pwChars.length == 0)
{
- err.println(wrapText(INFO_LDAPAUTH_NON_EMPTY_PASSWORD.get(),
- MAX_LINE_WIDTH));
+ err.println(wrapText(INFO_LDAPAUTH_NON_EMPTY_PASSWORD.get(), MAX_LINE_WIDTH));
out.print(INFO_LDAPAUTH_PASSWORD_PROMPT.get(bindDNValue));
pwChars = ConsoleApplication.readPassword();
}
@@ -488,15 +478,19 @@
return bindPasswordValue;
}
- private void addLdapConnectionArguments(ArgumentGroup argGroup, boolean alwaysSSL) {
+ private void addLdapConnectionArguments(ArgumentGroup argGroup, boolean alwaysSSL)
+ {
args = new SecureConnectionCliArgs(alwaysSSL);
- try {
- LinkedHashSet<Argument> argSet = args.createGlobalArguments();
- for (Argument arg : argSet) {
+ try
+ {
+ Set<Argument> argSet = args.createGlobalArguments();
+ for (Argument arg : argSet)
+ {
addArgument(arg, argGroup);
}
}
- catch (ArgumentException ae) {
+ catch (ArgumentException ae)
+ {
ae.printStackTrace(); // Should never happen
}
}
--
Gitblit v1.10.0