diff options
| author | Robert Gemmell <robbie@apache.org> | 2012-11-27 16:42:12 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2012-11-27 16:42:12 +0000 |
| commit | 0e3d66e69801c5124bd358dd177f39402ca5837e (patch) | |
| tree | 4a2be628b045ef645c84968639e5a1c1c83a68d1 /java | |
| parent | 1665a88f2bd7ff38c97c354d026d6c13725e26e1 (diff) | |
| download | qpid-python-0e3d66e69801c5124bd358dd177f39402ca5837e.tar.gz | |
QPID-4475: enable the web management UI support the PLAIN mechanism for SASL login
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1414256 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
2 files changed, 41 insertions, 2 deletions
diff --git a/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java b/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java index df77f9dc5d..f8c8b52023 100644 --- a/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/SaslServlet.java +++ b/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/java/broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/sasl.js b/java/broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/sasl.js index 98313c6798..b4f0728685 100644 --- a/java/broker-plugins/management-http/src/main/java/resources/js/qpid/authorization/sasl.js +++ b/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); + } + } + ); + + }; |
