summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2010-07-08 20:35:36 +0000
committerRobert Gemmell <robbie@apache.org>2010-07-08 20:35:36 +0000
commit15c49796785efe1b4e9e53ccd7dc4760f395fd18 (patch)
treeba422a6e1ff805622fd884f87f47bda9b0eaddd0
parent459f48df9d6b62a0f72be50c8ce082c1317c736e (diff)
downloadqpid-python-15c49796785efe1b4e9e53ccd7dc4760f395fd18.tar.gz
QPID-2726: move the password verification process to an easily overridable protected method
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@961923 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/plain/PlainSaslServer.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/plain/PlainSaslServer.java b/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/plain/PlainSaslServer.java
index 731ac70c0e..1187aac303 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/plain/PlainSaslServer.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/plain/PlainSaslServer.java
@@ -79,8 +79,7 @@ public class PlainSaslServer implements SaslServer
AuthorizeCallback authzCb = new AuthorizeCallback(authzid, authzid);
Callback[] callbacks = new Callback[]{nameCb, passwordCb, authzCb};
_cbh.handle(callbacks);
- String storedPwd = new String(passwordCb.getPassword());
- if (storedPwd.equals(pwd))
+ if (validatePassword(pwd, passwordCb))
{
_complete = true;
}
@@ -104,6 +103,20 @@ public class PlainSaslServer implements SaslServer
}
}
+ /**
+ * Compares the incoming plain text password with that contained in the given PasswordCallback
+ *
+ * @param incomingPwd The incoming plain text password
+ * @param storedPwdCb PasswordCallback containing the stored password
+ * @return Whether the incoming password authenticates against the stored password
+ */
+ protected boolean validatePassword(String incomingPwd, PasswordCallback storedPwdCb)
+ {
+ String storedPwd = new String(storedPwdCb.getPassword());
+
+ return incomingPwd.equals(storedPwd);
+ }
+
private int findNullPosition(byte[] response, int startPosition)
{
int position = startPosition;