From 6781e3b79f4ff822aeb68d4d3a3dcd8b49ad86f9 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Wed, 12 Sep 2007 00:03:02 +0000
Subject: [PATCH] Make a couple of changes to help improve server performance:
---
opendj-sdk/opends/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java | 45 +++++++++------------------------------------
1 files changed, 9 insertions(+), 36 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java
index bb42dab..f31ad80 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/DigestMD5SASLMechanismHandler.java
@@ -25,7 +25,6 @@
* Portions Copyright 2006-2007 Sun Microsystems, Inc.
*/
package org.opends.server.extensions;
-import org.opends.messages.Message;
@@ -39,8 +38,8 @@
import java.util.List;
import java.util.Map;
import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
+import org.opends.messages.Message;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.DigestMD5SASLMechanismHandlerCfg;
import org.opends.server.admin.std.server.SASLMechanismHandlerCfg;
@@ -52,29 +51,26 @@
import org.opends.server.core.BindOperation;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.PasswordPolicyState;
+import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.protocols.asn1.ASN1OctetString;
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.types.AuthenticationInfo;
import org.opends.server.types.ByteString;
import org.opends.server.types.ConfigChangeResult;
+import org.opends.server.types.DebugLogLevel;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.DisconnectReason;
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.Privilege;
import org.opends.server.types.ResultCode;
import org.opends.server.util.Base64;
-import org.opends.server.types.DebugLogLevel;
+import static org.opends.messages.ExtensionMessages.*;
import static org.opends.server.loggers.ErrorLogger.*;
import static org.opends.server.loggers.debug.DebugLogger.*;
-import org.opends.server.loggers.debug.DebugTracer;
-import static org.opends.messages.ExtensionMessages.*;
-
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
@@ -117,7 +113,7 @@
// The lock that will be used to provide threadsafe access to the message
// digest.
- private ReentrantLock digestLock;
+ private Object digestLock;
// The random number generator that we will use to create the nonce.
private SecureRandom randomGenerator;
@@ -151,7 +147,7 @@
// Initialize the variables needed for the MD5 digest creation.
- digestLock = new ReentrantLock();
+ digestLock = new Object();
randomGenerator = new SecureRandom();
try
@@ -1163,18 +1159,7 @@
private String generateNonce()
{
byte[] nonceBytes = new byte[16];
-
- digestLock.lock();
-
- try
- {
- randomGenerator.nextBytes(nonceBytes);
- }
- finally
- {
- digestLock.unlock();
- }
-
+ randomGenerator.nextBytes(nonceBytes);
return Base64.encode(nonceBytes);
}
@@ -1359,9 +1344,7 @@
String qop, String charset)
throws UnsupportedEncodingException
{
- digestLock.lock();
-
- try
+ synchronized (digestLock)
{
// First, get a hash of "username:realm:password".
StringBuilder a1String1 = new StringBuilder();
@@ -1423,10 +1406,6 @@
kdString.append(a2HashHex);
return md5Digest.digest(kdString.toString().getBytes(charset));
}
- finally
- {
- digestLock.unlock();
- }
}
@@ -1465,9 +1444,7 @@
String qop, String charset)
throws UnsupportedEncodingException
{
- digestLock.lock();
-
- try
+ synchronized (digestLock)
{
// First, get a hash of "username:realm:password".
StringBuilder a1String1 = new StringBuilder();
@@ -1534,10 +1511,6 @@
kdString.append(a2HashHex);
return md5Digest.digest(kdString.toString().getBytes(charset));
}
- finally
- {
- digestLock.unlock();
- }
}
--
Gitblit v1.10.0