From 22094368c2865dcfb6daf8366425212b721a4657 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Thu, 05 Feb 2009 17:42:14 +0000
Subject: [PATCH] Merge ASN1 branch to trunk
---
opends/src/server/org/opends/server/tools/LDAPPasswordModify.java | 77 +++++++++++++++++++++-----------------
1 files changed, 42 insertions(+), 35 deletions(-)
diff --git a/opends/src/server/org/opends/server/tools/LDAPPasswordModify.java b/opends/src/server/org/opends/server/tools/LDAPPasswordModify.java
index 7c9a795..9ee5d04 100644
--- a/opends/src/server/org/opends/server/tools/LDAPPasswordModify.java
+++ b/opends/src/server/org/opends/server/tools/LDAPPasswordModify.java
@@ -32,22 +32,20 @@
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
+import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import org.opends.server.controls.PasswordPolicyErrorType;
import org.opends.server.controls.PasswordPolicyResponseControl;
import org.opends.server.controls.PasswordPolicyWarningType;
-import org.opends.server.protocols.asn1.ASN1Element;
-import org.opends.server.protocols.asn1.ASN1OctetString;
-import org.opends.server.protocols.asn1.ASN1Sequence;
+import org.opends.server.protocols.asn1.*;
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;
-import org.opends.server.types.DN;
-import org.opends.server.types.NullOutputStream;
+import org.opends.server.types.*;
import org.opends.server.util.EmbeddedUtils;
import org.opends.server.util.args.ArgumentException;
import org.opends.server.util.args.ArgumentParser;
@@ -565,7 +563,7 @@
// If a control string was provided, then decode the requested controls.
- ArrayList<LDAPControl> controls = new ArrayList<LDAPControl>();
+ ArrayList<Control> controls = new ArrayList<Control>();
if(controlStr.isPresent())
{
for (String ctrlString : controlStr.getValues())
@@ -680,51 +678,58 @@
// Construct the password modify request.
- ArrayList<ASN1Element> requestElements = new ArrayList<ASN1Element>(3);
+ ByteStringBuilder builder = new ByteStringBuilder();
+ ASN1Writer asn1Writer = ASN1.getWriter(builder);
+
+ try
+ {
+ asn1Writer.writeStartSequence();
if (authzID.isPresent())
{
- requestElements.add(new ASN1OctetString(TYPE_PASSWORD_MODIFY_USER_ID,
- authzID.getValue()));
+ asn1Writer.writeOctetString(TYPE_PASSWORD_MODIFY_USER_ID,
+ authzID.getValue());
}
else if (provideDNForAuthzID.isPresent())
{
- requestElements.add(new ASN1OctetString(TYPE_PASSWORD_MODIFY_USER_ID,
- "dn:" + dn));
+ asn1Writer.writeOctetString(TYPE_PASSWORD_MODIFY_USER_ID, "dn:" + dn);
}
if (currentPW.isPresent())
{
- requestElements.add(new ASN1OctetString(TYPE_PASSWORD_MODIFY_OLD_PASSWORD,
- currentPW.getValue()));
+ asn1Writer.writeOctetString(TYPE_PASSWORD_MODIFY_OLD_PASSWORD,
+ currentPW.getValue());
}
else if (currentPWFile.isPresent())
{
- requestElements.add(new ASN1OctetString(TYPE_PASSWORD_MODIFY_OLD_PASSWORD,
- currentPWFile.getValue()));
+ asn1Writer.writeOctetString(TYPE_PASSWORD_MODIFY_OLD_PASSWORD,
+ currentPWFile.getValue());
}
else if (provideDNForAuthzID.isPresent())
{
- requestElements.add(new ASN1OctetString(TYPE_PASSWORD_MODIFY_OLD_PASSWORD,
- pw));
+ asn1Writer.writeOctetString(TYPE_PASSWORD_MODIFY_OLD_PASSWORD,
+ pw);
}
if (newPW.isPresent())
{
- requestElements.add(new ASN1OctetString(TYPE_PASSWORD_MODIFY_NEW_PASSWORD,
- newPW.getValue()));
+ asn1Writer.writeOctetString(TYPE_PASSWORD_MODIFY_NEW_PASSWORD,
+ newPW.getValue());
}
else if (newPWFile.isPresent())
{
- requestElements.add(new ASN1OctetString(TYPE_PASSWORD_MODIFY_NEW_PASSWORD,
- newPWFile.getValue()));
+ asn1Writer.writeOctetString(TYPE_PASSWORD_MODIFY_NEW_PASSWORD,
+ newPWFile.getValue());
}
-
- ASN1OctetString requestValue =
- new ASN1OctetString(new ASN1Sequence(requestElements).encode());
+ asn1Writer.writeEndSequence();
+ }
+ catch(Exception e)
+ {
+ err.println(e);
+ }
ExtendedRequestProtocolOp extendedRequest =
new ExtendedRequestProtocolOp(OID_PASSWORD_MODIFY_REQUEST,
- requestValue);
+ builder.toByteString());
LDAPMessage requestMessage =
new LDAPMessage(nextMessageID.getAndIncrement(), extendedRequest,
controls);
@@ -847,17 +852,18 @@
// See if the response included any controls that we recognize, and if so
// then handle them.
- ArrayList<LDAPControl> responseControls = responseMessage.getControls();
+ List<Control> responseControls = responseMessage.getControls();
if (responseControls != null)
{
- for (LDAPControl c : responseControls)
+ for (Control c : responseControls)
{
if (c.getOID().equals(OID_PASSWORD_POLICY_CONTROL))
{
try
{
PasswordPolicyResponseControl pwPolicyControl =
- PasswordPolicyResponseControl.decodeControl(c.getControl());
+ PasswordPolicyResponseControl.DECODER
+ .decode(c.isCritical(), ((LDAPControl) c).getValue());
PasswordPolicyWarningType pwPolicyWarningType =
pwPolicyControl.getWarningType();
@@ -890,28 +896,29 @@
// See if the response included a generated password.
- ASN1OctetString responseValue = extendedResponse.getValue();
+ ByteString responseValue = extendedResponse.getValue();
if (responseValue != null)
{
try
{
- ASN1Sequence responseSequence =
- ASN1Sequence.decodeAsSequence(responseValue.value());
- for (ASN1Element e : responseSequence.elements())
+ ASN1Reader asn1Reader = ASN1.getReader(responseValue);
+ asn1Reader.readStartSequence();
+ while(asn1Reader.hasNextElement())
{
- if (e.getType() == TYPE_PASSWORD_MODIFY_GENERATED_PASSWORD)
+ if (asn1Reader.peekType() == TYPE_PASSWORD_MODIFY_GENERATED_PASSWORD)
{
Message message = INFO_LDAPPWMOD_GENERATED_PASSWORD.get(
- e.decodeAsOctetString().stringValue());
+ asn1Reader.readOctetStringAsString());
out.println(wrapText(message, MAX_LINE_WIDTH));
}
else
{
Message message = ERR_LDAPPWMOD_UNRECOGNIZED_VALUE_TYPE.get(
- byteToHex(e.getType()));
+ asn1Reader.readOctetStringAsString());
err.println(wrapText(message, MAX_LINE_WIDTH));
}
}
+ asn1Reader.readEndSequence();
}
catch (Exception e)
{
--
Gitblit v1.10.0