From 6c2dae79767257aa61c05c36189489861ca6f0f0 Mon Sep 17 00:00:00 2001
From: Violette Roche-Montane <violette.roche-montane@forgerock.com>
Date: Thu, 06 Mar 2014 14:37:45 +0000
Subject: [PATCH] Checkpoint OPENDJ-1343 Migrate dsconfig - Removed the PasswordReader class as now we only support >JDK6   - Replaced calls to PasswordReader.readPassword to ConsoleApplication.readPassword() - Minor code cleanup / removed unused on the SecureConnectionCli class.

---
 opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java |  257 +--------------------------------------------------
 1 files changed, 5 insertions(+), 252 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java b/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java
index ccd64f4..dca3b9e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/SecureConnectionCliArgs.java
@@ -27,21 +27,15 @@
 package org.opends.server.admin.client.cli;
 
 import static com.forgerock.opendj.cli.ArgumentConstants.OPTION_LONG_ADMIN_UID;
-import static com.forgerock.opendj.cli.CliMessages.INFO_DESCRIPTION_ADMIN_PORT;
+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.opends.server.util.ServerConstants.MAX_LINE_WIDTH;
-import static org.opends.server.util.StaticUtils.close;
-import static org.opends.server.util.StaticUtils.wrapText;
-import static org.opends.messages.AdminToolMessages.*;
-import static org.opends.messages.ToolMessages.*;
+import static org.forgerock.util.Utils.closeSilently;
 
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
 import java.net.InetAddress;
 import java.security.KeyStore;
 import java.security.KeyStoreException;
@@ -50,15 +44,11 @@
 import java.util.ArrayList;
 import java.util.LinkedHashSet;
 
-import javax.net.ssl.KeyManager;
-
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
-import org.opends.admin.ads.util.ApplicationKeyManager;
 import org.opends.admin.ads.util.ApplicationTrustManager;
 import org.opends.admin.ads.util.ConnectionUtils;
-import org.opends.quicksetup.Constants;
 import org.opends.server.admin.AdministrationConnector;
 import org.opends.server.admin.server.ServerManagementContext;
 import org.opends.server.admin.std.server.AdministrationConnectorCfg;
@@ -67,12 +57,11 @@
 import org.opends.server.admin.std.server.TrustManagerProviderCfg;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.util.PasswordReader;
-import org.opends.server.util.SelectableCertificateKeyManager;
 
 import com.forgerock.opendj.cli.Argument;
 import com.forgerock.opendj.cli.ArgumentException;
 import com.forgerock.opendj.cli.BooleanArgument;
+import com.forgerock.opendj.cli.CliConstants;
 import com.forgerock.opendj.cli.CommonArguments;
 import com.forgerock.opendj.cli.FileBasedArgument;
 import com.forgerock.opendj.cli.IntegerArgument;
@@ -265,145 +254,6 @@
   }
 
   /**
-   * Get the password which has to be used for the command.
-   *
-   * @param dn
-   *          The user DN for which to password could be asked.
-   * @param out
-   *          The input stream to used if we have to prompt to the
-   *          user.
-   * @param err
-   *          The error stream to used if we have to prompt to the
-   *          user.
-   * @param clearArg
-   *          The password StringArgument argument.
-   * @param fileArg
-   *          The password FileBased argument.
-   * @return The password stored into the specified file on by the
-   *         command line argument, or prompts it if not specified.
-   */
-  public String getBindPassword(String dn,
-      OutputStream out, OutputStream err, StringArgument clearArg,
-      FileBasedArgument fileArg)
-  {
-    if (clearArg.isPresent())
-    {
-      String bindPasswordValue = clearArg.getValue();
-      if(bindPasswordValue != null && "-".equals(bindPasswordValue))
-      {
-        // read the password from the stdin.
-        try
-        {
-          out.write(INFO_LDAPAUTH_PASSWORD_PROMPT.get(dn).toString().getBytes());
-          out.flush();
-          char[] pwChars = PasswordReader.readPassword();
-          bindPasswordValue = new String(pwChars);
-        } catch(Exception ex)
-        {
-          logger.traceException(ex);
-          try
-          {
-            err.write(wrapText(ex.getMessage(), MAX_LINE_WIDTH).getBytes());
-            err.write(LINE_SEPARATOR.getBytes());
-          }
-          catch (IOException e)
-          {
-          }
-          return null;
-        }
-      }
-      return bindPasswordValue;
-    }
-    else
-      if (fileArg.isPresent())
-      {
-        return fileArg.getValue();
-      }
-      else
-      {
-        // read the password from the stdin.
-        try
-        {
-          out.write(
-              INFO_LDAPAUTH_PASSWORD_PROMPT.get(dn).toString().getBytes());
-          out.flush();
-          char[] pwChars = PasswordReader.readPassword();
-          return new String(pwChars);
-        }
-        catch (Exception ex)
-        {
-          logger.traceException(ex);
-          try
-          {
-            err.write(wrapText(ex.getMessage(), MAX_LINE_WIDTH).getBytes());
-            err.write(LINE_SEPARATOR.getBytes());
-          }
-          catch (IOException e)
-          {
-          }
-          return null;
-        }
-      }
-
-  }
-
-  /**
-   * Get the password which has to be used for the command.
-   *
-   * @param dn
-   *          The user DN for which to password could be asked.
-   * @param out
-   *          The input stream to used if we have to prompt to the
-   *          user.
-   * @param err
-   *          The error stream to used if we have to prompt to the
-   *          user.
-   * @return The password stored into the specified file on by the
-   *         command line argument, or prompts it if not specified.
-   */
-  public String getBindPassword(String dn, OutputStream out, OutputStream err)
-  {
-    return getBindPassword(dn, out, err, bindPasswordArg, bindPasswordFileArg);
-  }
-
-  /**
-   * Get the password which has to be used for the command without prompting
-   * the user.  If no password was specified, return null.
-   *
-   * @param clearArg
-   *          The password StringArgument argument.
-   * @param fileArg
-   *          The password FileBased argument.
-   * @return The password stored into the specified file on by the
-   *         command line argument, or null it if not specified.
-   */
-  public String getBindPassword(StringArgument clearArg,
-      FileBasedArgument fileArg)
-  {
-    if (clearArg.isPresent())
-    {
-      return clearArg.getValue();
-    }
-    else if (fileArg.isPresent())
-    {
-      return fileArg.getValue();
-    }
-    return null;
-  }
-
-  /**
-   * Get the password which has to be used for the command without prompting
-   * the user.  If no password was specified, return null.
-   *
-   * @return The password stored into the specified file on by the
-   *         command line argument, or null it if not specified.
-   */
-  public String getBindPassword()
-  {
-    return getBindPassword(bindPasswordArg, bindPasswordFileArg);
-  }
-
-  /**
    * Initialize Global option.
    *
    * @throws ArgumentException
@@ -453,7 +303,7 @@
     adminUidArg = new StringArgument("adminUID", 'I',
         OPTION_LONG_ADMIN_UID, false, false, true,
         INFO_ADMINUID_PLACEHOLDER.get(),
-        Constants.GLOBAL_ADMIN_UID, null,
+        CliConstants.GLOBAL_ADMIN_UID, null,
         INFO_DESCRIPTION_ADMIN_UID.get());
     adminUidArg.setPropertyName(OPTION_LONG_ADMIN_UID);
     adminUidArg.setHidden(true);
@@ -626,23 +476,6 @@
 
     return SUCCESS.get();
   }
-  /**
-   * Indication if provided global options are validate.
-   *
-   * @param err the stream to be used to print error message.
-   * @return return code.
-   */
-  public int validateGlobalOptions(PrintStream err)
-  {
-    LocalizableMessageBuilder buf = new LocalizableMessageBuilder();
-    int returnValue = validateGlobalOptions(buf);
-    if (buf.length() > 0)
-    {
-      err.println(wrapText(buf.toString(), MAX_LINE_WIDTH));
-    }
-    return returnValue;
-  }
-
 
   /**
    * Indicate if the SSL mode is required.
@@ -756,7 +589,7 @@
           }
           finally
           {
-            close(fos);
+            closeSilently(fos);
           }
         }
       trustManager = new ApplicationTrustManager(truststore);
@@ -764,87 +597,7 @@
     return trustManager;
   }
 
-  /**
-   * Handle KeyStore.
-   *
-   * @return The keyStore manager to be used for the command.
-   */
-  public KeyManager getKeyManager()
-  {
-    KeyStore keyStore = null;
-    String keyStorePasswordStringValue = null;
-    char[] keyStorePasswordValue = null;
-    if (keyStorePathArg.isPresent())
-    {
-      FileInputStream fos = null;
-      try
-      {
-        fos = new FileInputStream(keyStorePathArg.getValue());
-        if (keyStorePasswordArg.isPresent())
-        {
-          keyStorePasswordStringValue = keyStorePasswordArg.getValue();
-        }
-        else if (keyStorePasswordFileArg.isPresent())
-        {
-          keyStorePasswordStringValue = keyStorePasswordFileArg.getValue();
-        }
-        if (keyStorePasswordStringValue != null)
-        {
-          keyStorePasswordValue = keyStorePasswordStringValue.toCharArray();
-        }
 
-        keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
-        keyStore.load(fos,keyStorePasswordValue);
-      }
-      catch (KeyStoreException 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 keystore"), e);
-      }
-      catch (NoSuchAlgorithmException 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 keystore"), e);
-      }
-      catch (CertificateException 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 keystore"), e);
-      }
-      catch (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 keystore"), e);
-      }
-      finally
-      {
-        close(fos);
-      }
-
-      char[] password = null;
-      if (keyStorePasswordStringValue != null)
-      {
-        password = keyStorePasswordStringValue.toCharArray();
-      }
-      ApplicationKeyManager akm = new ApplicationKeyManager(keyStore,password);
-      if (certNicknameArg.isPresent())
-      {
-        return new SelectableCertificateKeyManager(akm, certNicknameArg
-            .getValue());
-      }
-      return akm;
-    }
-    return null;
-
-  }
 
   /**
    * Returns <CODE>true</CODE> if we can read on the provided path and

--
Gitblit v1.10.0