From 32a75682236f06ad5bf4c9b2fb5a1980b882ca67 Mon Sep 17 00:00:00 2001 From: Robert Gemmell Date: Sun, 31 Mar 2013 21:45:08 +0000 Subject: QPID-4657, QPID-4683: review changes for new port configuration functionality - Fix ability to select SSL for a port - Add ability to set SSL Client Auth attributes for a port - Enforce that you have SSL keystores/trustures in place when creating new ports that will fail to work without them - Update names and placeholder text in UI to convey what happens when you dont fill out an optional attribute. - Remove the default AMQP port value in form, makes the user specify port and avoid near definite clash. - Removed requirement to specify Transport since it is actually optional. - Ensure the port state is set accurately for newly added ports - Fix the ability to override the management ports in ManagementMode - Allow editing the management ports in Management Mode without having to override them first. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1463060 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/resources/addPort.html | 32 +++++---- .../java/resources/js/qpid/management/addPort.js | 79 +++++++++++++++++++--- 2 files changed, 89 insertions(+), 22 deletions(-) (limited to 'qpid/java/broker-plugins/management-http/src') diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html b/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html index fddd52138b..2f49ab1448 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/addPort.html @@ -22,20 +22,20 @@
- - -
+
+ + +
- + dojoType="dijit.form.CheckBox" data-dojo-props="label: 'Support broker default AMQP versions:'"/> + data-dojo-props="name: 'protocols', value: '', label: 'JMX protocol*:'" missingMessage="JMX protocol must be supplied">
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js index dec04e604e..4d1e268d4d 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js @@ -75,8 +75,7 @@ define(["dojo/_base/xhr", { continue; } - - if (propName === "protocols") + else if (propName === "protocols") { var val = formValues[propName]; if (!lang.isArray(val)) @@ -85,6 +84,21 @@ define(["dojo/_base/xhr", } newPort[ propName ] = val; } + else if (propName === "transports") + { + var val = formValues[propName]; + + if(val === "") + { + continue; + } + + if (!lang.isArray(val)) + { + val = [ val ]; + } + newPort[ propName ] = val; + } else if(formValues[ propName ] !== "") { newPort[ propName ] = formValues[propName]; @@ -92,6 +106,18 @@ define(["dojo/_base/xhr", } } + + var needClientAuth = dijit.byId("formAddPort.needClientAuth"); + var wantClientAuth = dijit.byId("formAddPort.wantClientAuth"); + if(!needClientAuth.disabled) + { + newPort.needClientAuth = needClientAuth.checked; + } + if(!wantClientAuth.disabled) + { + newPort.wantClientAuth = wantClientAuth.checked; + } + return newPort; }; @@ -115,26 +141,41 @@ define(["dojo/_base/xhr", registry.byId("formAddPort.protocols" + option.value).set("disabled", true); registry.byId("formAddPort:fields" + option.value).domNode.style.display = "none"; }); + + if ("AMQP" == newValue) + { + registry.byId("formAddPort:fieldsClientAuth").domNode.style.display = "block"; + registry.byId("formAddPort.needClientAuth").set("disabled", false); + registry.byId("formAddPort.wantClientAuth").set("disabled", false); + } + else + { + registry.byId("formAddPort:fieldsClientAuth").domNode.style.display = "none"; + registry.byId("formAddPort.needClientAuth").set("checked", false); + registry.byId("formAddPort.wantClientAuth").set("checked", false); + registry.byId("formAddPort.needClientAuth").set("disabled", true); + registry.byId("formAddPort.wantClientAuth").set("disabled", true); + } + registry.byId("formAddPort:fields" + newValue).domNode.style.display = "block"; var defaultsAMQPProtocols = registry.byId("formAddPort.protocolsDefault"); defaultsAMQPProtocols.set("disabled", "AMQP" != newValue) var protocolsWidget = registry.byId("formAddPort.protocols" + newValue); - var transportWidget = registry.byId("formAddPort.transport"); if (protocolsWidget) { if ("AMQP" == newValue && defaultsAMQPProtocols.checked) { protocolsWidget.set("disabled", true); - transportWidget.set("required", false); } else { - // the transport has to be set for a management port - // disabling the default option - transportWidget.set("required", true); protocolsWidget.set("disabled", false); } - transportWidget.startup(); + } + var transportsWidget = registry.byId("formAddPort.transports"); + if (transportsWidget) + { + transportsWidget.startup(); } }); theForm = registry.byId("formAddPort"); @@ -186,6 +227,14 @@ define(["dojo/_base/xhr", customClass: "formLabel" }, dom.byId("formAddPort:fields")); addPort.fields.startup(); + addPort.fieldsClientAuth = new dojox.layout.TableContainer( { + cols: 1, + labelWidth: labelWidthValue, + showLabels: true, + orientation: "horiz", + customClass: "formLabel" + }, dom.byId("formAddPort:fieldsClientAuth")); + addPort.fieldsClientAuth.startup(); addPort.fieldsAMQP = new dojox.layout.TableContainer( { cols: 1, labelWidth: labelWidthValue, @@ -240,7 +289,7 @@ define(["dojo/_base/xhr", nameField.set("disabled", true); dom.byId("formAddPort.id").value=port.id; providerWidget.set("value", port.authenticationProvider ? port.authenticationProvider : ""); - registry.byId("formAddPort.transport").set("value", port.transports ? port.transports[0] : ""); + registry.byId("formAddPort.transports").set("value", port.transports ? port.transports[0] : ""); registry.byId("formAddPort.port").set("value", port.port); var protocols = port.protocols; var typeWidget = registry.byId("formAddPort.type"); @@ -250,6 +299,12 @@ define(["dojo/_base/xhr", registry.byId("formAddPort:fields" + option.value).domNode.style.display = "none"; }); + registry.byId("formAddPort.needClientAuth").set("checked", false); + registry.byId("formAddPort.wantClientAuth").set("checked", false); + registry.byId("formAddPort.needClientAuth").set("disabled", true); + registry.byId("formAddPort.wantClientAuth").set("disabled", true); + registry.byId("formAddPort:fieldsClientAuth").domNode.style.display = "none"; + // identify the type of port using first protocol specified in protocol field if provided if ( !protocols || protocols.length == 0 || protocols[0].indexOf("AMQP") == 0) { @@ -270,6 +325,12 @@ define(["dojo/_base/xhr", defaultProtocolsWidget.set("checked", true); amqpProtocolsWidget.set("disabled", true) } + + registry.byId("formAddPort.needClientAuth").set("disabled", false); + registry.byId("formAddPort.wantClientAuth").set("disabled", false); + registry.byId("formAddPort.needClientAuth").set("checked", port.needClientAuth); + registry.byId("formAddPort.wantClientAuth").set("checked", port.wantClientAuth); + registry.byId("formAddPort:fieldsClientAuth").domNode.style.display = "block"; } else if (protocols[0].indexOf("RMI") != -1) { -- cgit v1.2.1