From ed803f46487547b3134c8fd58b12916372556878 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Tue, 08 Apr 2008 11:07:16 +0000
Subject: [PATCH] Fix for issue 3129 (stop-ds: -j/--bindPasswordFile option doesn't work) In fact the issue applies to most of the task based command-lines (like export-ldif or import-ldif).  THe fix consist basically on taking into account whether the user provided the password in a file or not.

---
 opendj-sdk/opends/src/server/org/opends/server/tools/ManageAccount.java |   38 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 37 insertions(+), 1 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/ManageAccount.java b/opendj-sdk/opends/src/server/org/opends/server/tools/ManageAccount.java
index 0755767..6e7212e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/ManageAccount.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/ManageAccount.java
@@ -50,6 +50,7 @@
 import org.opends.server.util.args.BooleanArgument;
 import org.opends.server.util.args.FileBasedArgument;
 import org.opends.server.util.args.IntegerArgument;
+import org.opends.server.util.args.LDAPConnectionArgumentParser;
 import org.opends.server.util.args.MultiChoiceArgument;
 import org.opends.server.util.args.StringArgument;
 import org.opends.server.util.args.SubCommand;
@@ -1243,6 +1244,40 @@
     connectionOptions.setVersionNumber(3);
 
 
+    //  If both a bind password and bind password file were provided, then
+    // return an error.
+    if (bindPW.isPresent() && bindPWFile.isPresent())
+    {
+      Message message = ERR_PWPSTATE_MUTUALLY_EXCLUSIVE_ARGUMENTS.get(
+              bindPW.getLongIdentifier(),
+              bindPWFile.getLongIdentifier());
+      err.println(wrapText(message, MAX_LINE_WIDTH));
+      return LDAPResultCode.CLIENT_SIDE_PARAM_ERROR;
+    }
+
+    // If both a key store password and key store password file were provided,
+    // then return an error.
+    if (keyStorePW.isPresent() && keyStorePWFile.isPresent())
+    {
+      Message message = ERR_PWPSTATE_MUTUALLY_EXCLUSIVE_ARGUMENTS.get(
+              keyStorePW.getLongIdentifier(),
+              keyStorePWFile.getLongIdentifier());
+      err.println(wrapText(message, MAX_LINE_WIDTH));
+      return LDAPResultCode.CLIENT_SIDE_PARAM_ERROR;
+    }
+
+
+    // If both a trust store password and trust store password file were
+    // provided, then return an error.
+    if (trustStorePW.isPresent() && trustStorePWFile.isPresent())
+    {
+      Message message = ERR_PWPSTATE_MUTUALLY_EXCLUSIVE_ARGUMENTS.get(
+              trustStorePW.getLongIdentifier(),
+              trustStorePWFile.getLongIdentifier());
+      err.println(wrapText(message, MAX_LINE_WIDTH));
+      return LDAPResultCode.CLIENT_SIDE_PARAM_ERROR;
+    }
+
     // See if we should use SSL or StartTLS when establishing the connection.
     // If so, then make sure only one of them was specified.
     if (useSSL.isPresent())
@@ -1353,7 +1388,8 @@
     {
       connection = new LDAPConnection(host.getValue(), port.getIntValue(),
                                       connectionOptions, out, err);
-      connection.connectToHost(bindDN.getValue(), bindPW.getValue(),
+      connection.connectToHost(bindDN.getValue(),
+          LDAPConnectionArgumentParser.getPasswordValue(bindPW, bindPWFile),
                                nextMessageID);
     }
     catch (ArgumentException ae)

--
Gitblit v1.10.0