From 7108ca0f3c0f50b238af68d678ab87a6bf0bf8e7 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Thu, 30 Nov 2006 13:42:52 +0000
Subject: [PATCH] Update the ldappasswordmodify tool to support the inclusion of arbitrary controls in the extended request.
---
opends/src/server/org/opends/server/tools/LDAPPasswordModify.java | 32 +++++++++++++++++++++++++++++++-
1 files changed, 31 insertions(+), 1 deletions(-)
diff --git a/opends/src/server/org/opends/server/tools/LDAPPasswordModify.java b/opends/src/server/org/opends/server/tools/LDAPPasswordModify.java
index 87d6c11..4bf9eaa 100644
--- a/opends/src/server/org/opends/server/tools/LDAPPasswordModify.java
+++ b/opends/src/server/org/opends/server/tools/LDAPPasswordModify.java
@@ -41,6 +41,7 @@
import org.opends.server.protocols.asn1.ASN1Writer;
import org.opends.server.protocols.ldap.ExtendedRequestProtocolOp;
import org.opends.server.protocols.ldap.ExtendedResponseProtocolOp;
+import org.opends.server.protocols.ldap.LDAPControl;
import org.opends.server.protocols.ldap.LDAPMessage;
import org.opends.server.protocols.ldap.LDAPResultCode;
import org.opends.server.protocols.ldap.UnbindRequestProtocolOp;
@@ -175,6 +176,7 @@
StringArgument authzID;
StringArgument bindDN;
StringArgument bindPW;
+ StringArgument controlStr;
StringArgument currentPW;
StringArgument ldapHost;
StringArgument newPW;
@@ -319,6 +321,13 @@
argParser.addArgument(sslTrustStorePINFile);
+ controlStr =
+ new StringArgument("control", 'J', "control", false, true, true,
+ "{controloid[:criticality[:value|::b64value|:<fileurl]]}",
+ null, null, MSGID_DESCRIPTION_CONTROLS);
+ argParser.addArgument(controlStr);
+
+
showUsage = new BooleanArgument("help", 'H', "help",
MSGID_LDAPPWMOD_DESCRIPTION_USAGE);
argParser.addArgument(showUsage);
@@ -479,6 +488,26 @@
}
+ // If a control string was provided, then decode the requested controls.
+ ArrayList<LDAPControl> controls = new ArrayList<LDAPControl>();
+ if(controlStr.isPresent())
+ {
+ for (String ctrlString : controlStr.getValues())
+ {
+ LDAPControl ctrl = LDAPToolUtils.getControl(ctrlString, err);
+ if(ctrl == null)
+ {
+ int msgID = MSGID_TOOL_INVALID_CONTROL_STRING;
+ String message = getMessage(msgID, ctrlString);
+ err.println(wrapText(message, MAX_LINE_WIDTH));
+ err.println(argParser.getUsage());
+ return 1;
+ }
+ controls.add(ctrl);
+ }
+ }
+
+
// Perform a basic Directory Server bootstrap if appropriate.
if (initializeServer)
{
@@ -604,7 +633,8 @@
new ExtendedRequestProtocolOp(OID_PASSWORD_MODIFY_REQUEST,
requestValue);
LDAPMessage requestMessage =
- new LDAPMessage(nextMessageID.getAndIncrement(), extendedRequest);
+ new LDAPMessage(nextMessageID.getAndIncrement(), extendedRequest,
+ controls);
// Send the request to the server and read the response.
--
Gitblit v1.10.0