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/extensions/PasswordModifyExtendedOperation.java | 82 +++++++++++++++++------------------------
1 files changed, 34 insertions(+), 48 deletions(-)
diff --git a/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java b/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
index 2ca82a4..d5c216f 100644
--- a/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
+++ b/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
@@ -30,7 +30,6 @@
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.HashSet;
@@ -54,31 +53,11 @@
import org.opends.server.core.ModifyOperation;
import org.opends.server.core.PasswordPolicyState;
import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.protocols.asn1.ASN1Element;
-import org.opends.server.protocols.asn1.ASN1Exception;
-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.internal.InternalClientConnection;
import org.opends.server.schema.AuthPasswordSyntax;
import org.opends.server.schema.UserPasswordSyntax;
-import org.opends.server.types.Attribute;
-import org.opends.server.types.AttributeBuilder;
-import org.opends.server.types.AttributeType;
-import org.opends.server.types.AttributeValue;
-import org.opends.server.types.AuthenticationInfo;
-import org.opends.server.types.ByteString;
-import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.Control;
-import org.opends.server.types.DebugLogLevel;
-import org.opends.server.types.DirectoryException;
-import org.opends.server.types.DN;
-import org.opends.server.types.Entry;
-import org.opends.server.types.InitializationException;
-import org.opends.server.types.LockManager;
-import org.opends.server.types.Modification;
-import org.opends.server.types.ModificationType;
-import org.opends.server.types.Privilege;
-import org.opends.server.types.ResultCode;
+import org.opends.server.types.*;
import static org.opends.server.extensions.ExtensionsConstants.*;
import static org.opends.server.loggers.debug.DebugLogger.*;
@@ -268,21 +247,20 @@
{
try
{
- ASN1Sequence requestSequence =
- ASN1Sequence.decodeAsSequence(requestValue.value());
-
- for (ASN1Element e : requestSequence.elements())
+ ASN1Reader reader = ASN1.getReader(requestValue);
+ reader.readStartSequence();
+ while(reader.hasNextElement())
{
- switch (e.getType())
+ switch (reader.peekType())
{
case TYPE_PASSWORD_MODIFY_USER_ID:
- userIdentity = e.decodeAsOctetString();
+ userIdentity = reader.readOctetString();
break;
case TYPE_PASSWORD_MODIFY_OLD_PASSWORD:
- oldPassword = e.decodeAsOctetString();
+ oldPassword = reader.readOctetString();
break;
case TYPE_PASSWORD_MODIFY_NEW_PASSWORD:
- newPassword = e.decodeAsOctetString();
+ newPassword = reader.readOctetString();
break;
default:
operation.setResultCode(ResultCode.PROTOCOL_ERROR);
@@ -290,12 +268,13 @@
operation.appendErrorMessage(
ERR_EXTOP_PASSMOD_ILLEGAL_REQUEST_ELEMENT_TYPE.get(
- byteToHex(e.getType())));
+ byteToHex(reader.peekType())));
return;
}
}
+ reader.readEndSequence();
}
- catch (ASN1Exception ae)
+ catch (Exception ae)
{
if (debugEnabled())
{
@@ -374,7 +353,7 @@
else
{
// There was a userIdentity field in the request.
- String authzIDStr = userIdentity.stringValue();
+ String authzIDStr = userIdentity.toString();
String lowerAuthzIDStr = toLowerCase(authzIDStr);
if (lowerAuthzIDStr.startsWith("dn:"))
{
@@ -924,7 +903,7 @@
clearPasswords.add(oldPassword);
for (ByteString pw : pwPolicyState.getClearPasswords())
{
- if (! Arrays.equals(pw.value(), oldPassword.value()))
+ if (! pw.equals(oldPassword))
{
clearPasswords.add(pw);
}
@@ -1058,7 +1037,7 @@
try
{
StringBuilder[] components =
- AuthPasswordSyntax.decodeAuthPassword(v.getStringValue());
+ AuthPasswordSyntax.decodeAuthPassword(v.getValue().toString());
PasswordStorageScheme<?> scheme =
DirectoryServer.getAuthPasswordStorageScheme(
components[0].toString());
@@ -1098,7 +1077,7 @@
try
{
String[] components =
- UserPasswordSyntax.decodeUserPassword(v.getStringValue());
+ UserPasswordSyntax.decodeUserPassword(v.getValue().toString());
PasswordStorageScheme<?> scheme =
DirectoryServer.getPasswordStorageScheme(
toLowerCase(components[0]));
@@ -1111,7 +1090,7 @@
else
{
if (scheme.passwordMatches(oldPassword,
- new ASN1OctetString(components[1])))
+ ByteString.valueOf(components[1])))
{
deleteValues.add(v);
}
@@ -1142,7 +1121,7 @@
new LinkedHashSet<AttributeValue>(encodedPasswords.size());
for (ByteString s : encodedPasswords)
{
- addValues.add(new AttributeValue(attrType, s));
+ addValues.add(AttributeValues.create(attrType, s));
}
builder = new AttributeBuilder(attrType);
@@ -1156,7 +1135,8 @@
new LinkedHashSet<AttributeValue>(encodedPasswords.size());
for (ByteString s : encodedPasswords)
{
- replaceValues.add(new AttributeValue(attrType, s));
+ replaceValues.add(
+ AttributeValues.create(attrType, s));
}
AttributeBuilder builder = new AttributeBuilder(attrType);
@@ -1257,16 +1237,22 @@
if (generatedPassword)
{
- ArrayList<ASN1Element> valueElements = new ArrayList<ASN1Element>(1);
+ ByteStringBuilder builder = new ByteStringBuilder();
+ ASN1Writer writer = ASN1.getWriter(builder);
- ASN1OctetString newPWString =
- new ASN1OctetString(TYPE_PASSWORD_MODIFY_GENERATED_PASSWORD,
- newPassword.value());
- valueElements.add(newPWString);
+ try
+ {
+ writer.writeStartSequence();
+ writer.writeOctetString(TYPE_PASSWORD_MODIFY_GENERATED_PASSWORD,
+ newPassword);
+ writer.writeEndSequence();
+ }
+ catch(Exception e)
+ {
+ TRACER.debugCaught(DebugLogLevel.ERROR, e);
+ }
- ASN1Sequence valueSequence = new ASN1Sequence(valueElements);
- operation.setResponseValue(new ASN1OctetString(
- valueSequence.encode()));
+ operation.setResponseValue(builder.toByteString());
}
--
Gitblit v1.10.0