Author: rgodfrey
Date: Thu Nov 26 11:38:14 2015
New Revision: 1716609
URL: http://svn.apache.org/viewvc?rev=1716609&view=rev
Log:
QPID-6906 : Address review comments by [~k-wall], add ability to upload
certificates
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AttributeValueConverter.java
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/managedcertificatestore/show.js
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/store/managedcertificatestore/show.html
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AttributeValueConverter.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AttributeValueConverter.java?rev=1716609&r1=1716608&r2=1716609&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AttributeValueConverter.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/AttributeValueConverter.java
Thu Nov 26 11:38:14 2015
@@ -118,7 +118,16 @@ abstract class AttributeValueConverter<T
}
else if(value instanceof String)
{
- return
DatatypeConverter.parseBase64Binary(AbstractConfiguredObject.interpolate(object,
(String) value));
+ String interpolated =
AbstractConfiguredObject.interpolate(object,
+
(String) value);
+ try
+ {
+ return DatatypeConverter.parseBase64Binary(interpolated);
+ }
+ catch(ArrayIndexOutOfBoundsException e)
+ {
+ throw new IllegalArgumentException("Cannot convert string
'"+ interpolated+ "'to a byte[] - it does not appear to be base64 data");
+ }
}
else
{
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/managedcertificatestore/show.js
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/managedcertificatestore/show.js?rev=1716609&r1=1716608&r2=1716609&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/managedcertificatestore/show.js
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/js/qpid/management/store/managedcertificatestore/show.js
Thu Nov 26 11:38:14 2015
@@ -86,19 +86,58 @@ define(["dojo/query",
return
that.management.userPreferences.formatDateTime(val, {addOffset: true,
appendTimeZone: true});
}
}
- ], function(obj) {
- obj.grid.on("rowDblClick",
- function(evt){
- var idx = evt.rowIndex;
- var theItem = this.getItem(idx);
- that.download(theItem);
- });
- }, gridProperties, EnhancedGrid);
+ ], null, gridProperties, EnhancedGrid);
});
this.removeButton = registry.byNode(query(".removeCertificates",
containerNode)[0]);
this.removeButton.on("click", function(e) {that.removeCertificates()}
);
+ this.addButton = registry.byNode(query(".addCertificate",
containerNode)[0]);
+ var addButton = this.addButton;
+ var that = this;
+
+ function uploadCertificate(cert) {
+ var parentModelObj = that.modelObj;
+ var modelObj = {type: parentModelObj.type, name: "addCertificate",
parent: parentModelObj};
+ var url = that.management.buildObjectURL(modelObj);
+
+ that.management.post({url: url}, {certificate:
cert}).then(uploadComplete, uploadError);
+ }
+
+ function uploadComplete() { addButton.set("disabled", false); }
+
+ function uploadError(error) { that.management.errorHandler(error) ;
addButton.set("disabled", false); }
+
+ function onFileSelected() {
+ if(addButton.domNode.children[0].files) {
+ addButton.set("disabled", true);
+ var file = addButton.domNode.children[0].files[0];
+ var fileReader = new FileReader();
+ fileReader.onload = function (evt) {
+ var result = fileReader.result;
+ if(result.indexOf("-----BEGIN CERTIFICATE-----") != -1) {
+ uploadCertificate(result);
+
+ } else {
+ fileReader.onload = function (evt) {
+ var binresult = fileReader.result;
+ binresult =
binresult.substring(binresult.indexOf(",")+1);
+ uploadCertificate(binresult);
+ };
+ fileReader.readAsDataURL(file);
+ }
+ };
+ fileReader.readAsText(file);
+ }
+ }
+
+ if( window.FileReader ) {
+ this.addButton.on("change", onFileSelected);
+ } else {
+ this.addButton.set("disabled", true);
+ this.addButton.domNode.style.display = "none";
+ }
+
}
ManagedCertificateStore.prototype.removeCertificates = function ()
Modified:
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/store/managedcertificatestore/show.html
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/store/managedcertificatestore/show.html?rev=1716609&r1=1716608&r2=1716609&view=diff
==============================================================================
---
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/store/managedcertificatestore/show.html
(original)
+++
qpid/java/trunk/broker-plugins/management-http/src/main/java/resources/store/managedcertificatestore/show.html
Thu Nov 26 11:38:14 2015
@@ -23,6 +23,12 @@
<div class="managedCertificatesGrid hidden"></div>
<div class="clear">
<button data-dojo-type="dijit.form.Button"
class="removeCertificates">Remove Certificates</button>
+ <span data-dojo-attach-point="blah"></span>
+ <input name="addCertificate" type="file" id="uploader"
class="addCertificate"
+ data-dojo-attach-point="uploader"
+ data-dojo-type="dojox/form/Uploader"
+ data-dojo-props="label: 'Add Certificate'"/>
+
</div>
</div>
<div class="clear"></div>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]