summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2012-11-28 18:57:26 +0000
committerRobert Gemmell <robbie@apache.org>2012-11-28 18:57:26 +0000
commitba0504adc866999af400a8df9625b6dbacd01784 (patch)
treedd3cd97663c81d69151a80a14337f13abf16ba02
parent630b051a2d9f3ac9046db08cfb14727ef6693b3f (diff)
downloadqpid-python-ba0504adc866999af400a8df9625b6dbacd01784.tar.gz
QPID-4475: enable the web management UI support the PLAIN mechanism for SASL login
merge from trunk r1414256 git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.20@1414863 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java4
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/sasl.js39
2 files changed, 41 insertions, 2 deletions
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java
index df77f9dc5d..f8c8b52023 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java
+++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java
@@ -146,6 +146,10 @@ public class SaslServlet extends AbstractServlet
{
if(id == null)
{
+ if(LOGGER.isDebugEnabled())
+ {
+ LOGGER.debug("Creating SaslServer for mechanism: " + mechanism);
+ }
SaslServer saslServer = subjectCreator.createSaslServer(mechanism, request.getServerName(), null/*TODO*/);
evaluateSaslResponse(request, response, session, saslResponse, saslServer, subjectCreator);
}
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/sasl.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/sasl.js
index 98313c6798..b4f0728685 100644
--- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/sasl.js
+++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/sasl.js
@@ -152,10 +152,45 @@ var saslCramMD5 = function saslCramMD5(user, password)
});
};
+var containsMechanism = function containsMechanism(mechanisms, mech)
+{
+ for (var i = 0; i < mechanisms.length; i++) {
+ if (mechanisms[i] == mech) {
+ return true;
+ }
+ }
+
+ return false;
+};
+
var doAuthenticate = function doAuthenticate()
{
- saslCramMD5(dojo.byId("username").value, dojo.byId("pass").value);
- updateAuthentication();
+ dojo.xhrGet({
+ // The URL of the request
+ url: "rest/sasl",
+ handleAs: "json"
+ }).then(function(data)
+ {
+ var mechMap = data.mechanisms;
+
+ if (containsMechanism(mechMap, "CRAM-MD5"))
+ {
+ saslCramMD5(dojo.byId("username").value, dojo.byId("pass").value);
+ updateAuthentication();
+ }
+ else if (containsMechanism(mechMap, "PLAIN"))
+ {
+ saslPlain(dojo.byId("username").value, dojo.byId("pass").value);
+ updateAuthentication();
+ }
+ else
+ {
+ alert("No supported SASL mechanism offered: " + mechMap);
+ }
+ }
+ );
+
+
};