You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2020/11/16 21:17:28 UTC
[activemq-artemis] branch master updated: ARTEMIS-2993 Sanitize
artemis plugin console components
This is an automated email from the ASF dual-hosted git repository.
jbertram pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/master by this push:
new 89c93ce ARTEMIS-2993 Sanitize artemis plugin console components
new 3d327cd This closes #3340
89c93ce is described below
commit 89c93ce3f01fccb6ea6eeeb7ac63fbf08bcd4d3c
Author: Domenico Francesco Bruscino <br...@apache.org>
AuthorDate: Fri Nov 13 18:46:56 2020 +0100
ARTEMIS-2993 Sanitize artemis plugin console components
---
.../main/webapp/plugin/js/components/addresses.js | 10 ++++++----
.../main/webapp/plugin/js/components/connections.js | 10 ++++++----
.../main/webapp/plugin/js/components/consumers.js | 20 ++++++++++++--------
.../main/webapp/plugin/js/components/producers.js | 15 +++++++++------
.../src/main/webapp/plugin/js/components/queues.js | 10 ++++++----
.../src/main/webapp/plugin/js/components/sessions.js | 20 ++++++++++++--------
6 files changed, 51 insertions(+), 34 deletions(-)
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/addresses.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/addresses.js
index 1ebf072..6aa87c8 100644
--- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/addresses.js
+++ b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/addresses.js
@@ -56,7 +56,7 @@ var Artemis;
.name;
- function AddressesController($scope, workspace, jolokia, localStorage, artemisMessage, $location, $timeout, $filter, pagination, artemisAddress) {
+ function AddressesController($scope, workspace, jolokia, localStorage, artemisMessage, $location, $timeout, $filter, $sanitize, pagination, artemisAddress) {
var ctrl = this;
ctrl.pagination = pagination;
var mbean = Artemis.getBrokerMBean(workspace, jolokia);
@@ -116,7 +116,7 @@ var Artemis;
{ header: 'ID', itemField: 'id' },
{ header: 'Name', itemField: 'name' },
{ header: 'Routing Types', itemField: 'routingTypes' },
- { header: 'Queue Count', itemField: 'queueCount' , templateFn: function(value, item) { return '<a href="#" onclick="selectQueues(\'' + item.name + '\')">' + value + '</a>' }}
+ { header: 'Queue Count', itemField: 'queueCount' , templateFn: function(value, item) { return '<a href="#" onclick="selectQueues(' + item.idx + ')">' + $sanitize(value) + '</a>' }}
];
ctrl.refresh = function () {
@@ -141,7 +141,8 @@ var Artemis;
ctrl.filter.values.value = artemisAddress.address.address;
}
- selectQueues = function (address) {
+ selectQueues = function (idx) {
+ var address = ctrl.addresses[idx].name;
Artemis.log.debug("navigating to queues:" + address)
artemisAddress.address = { address: address };
$location.path("artemis/artemisQueues");
@@ -201,6 +202,7 @@ var Artemis;
var data = JSON.parse(response.value);
ctrl.addresses = [];
angular.forEach(data["data"], function (value, idx) {
+ value.idx = idx;
ctrl.addresses.push(value);
});
ctrl.pagination.page(data["count"]);
@@ -211,7 +213,7 @@ var Artemis;
ctrl.pagination.load();
}
- AddressesController.$inject = ['$scope', 'workspace', 'jolokia', 'localStorage', 'artemisMessage', '$location', '$timeout', '$filter', 'pagination', 'artemisAddress'];
+ AddressesController.$inject = ['$scope', 'workspace', 'jolokia', 'localStorage', 'artemisMessage', '$location', '$timeout', '$filter', '$sanitize', 'pagination', 'artemisAddress'];
})(Artemis || (Artemis = {}));
\ No newline at end of file
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/connections.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/connections.js
index 0983296..ddf48c5 100644
--- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/connections.js
+++ b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/connections.js
@@ -68,7 +68,7 @@ var Artemis;
.name;
- function ConnectionsController($scope, workspace, jolokia, localStorage, artemisMessage, $location, $timeout, $filter, pagination, artemisConnection, artemisSession) {
+ function ConnectionsController($scope, workspace, jolokia, localStorage, artemisMessage, $location, $timeout, $filter, $sanitize, pagination, artemisConnection, artemisSession) {
var ctrl = this;
ctrl.pagination = pagination;
var mbean = Artemis.getBrokerMBean(workspace, jolokia);
@@ -126,13 +126,14 @@ var Artemis;
{ header: 'Client ID', itemField: 'clientID' },
{ header: 'Users', itemField: 'users' },
{ header: 'protocol', itemField: 'protocol' },
- { header: 'Session Count', itemField: 'sessionCount', templateFn: function(value, item) { return '<a href="#" onclick="selectSessions(\'' + item.connectionID + '\')">' + value + '</a>' }},
+ { header: 'Session Count', itemField: 'sessionCount', templateFn: function(value, item) { return '<a href="#" onclick="selectSessions(' + item.idx + ')">' + $sanitize(value) + '</a>' }},
{ header: 'Remote Address', itemField: 'remoteAddress' },
{ header: 'Local Address', itemField: 'localAddress' },
{ header: 'Creation Time', itemField: 'creationTime' }
];
- selectSessions = function (connection) {
+ selectSessions = function (idx) {
+ var connection = ctrl.connections[idx].connectionID;
Artemis.log.debug("navigating to connection:" + connection)
artemisConnection.connection = { connectionID: connection };
$location.path("artemis/artemisSessions");
@@ -213,6 +214,7 @@ var Artemis;
var data = JSON.parse(response.value);
ctrl.connections = [];
angular.forEach(data["data"], function (value, idx) {
+ value.idx = idx;
ctrl.connections.push(value);
});
ctrl.pagination.page(data["count"]);
@@ -223,7 +225,7 @@ var Artemis;
ctrl.pagination.load();
}
- ConnectionsController.$inject = ['$scope', 'workspace', 'jolokia', 'localStorage', 'artemisMessage', '$location', '$timeout', '$filter', 'pagination', 'artemisConnection', 'artemisSession'];
+ ConnectionsController.$inject = ['$scope', 'workspace', 'jolokia', 'localStorage', 'artemisMessage', '$location', '$timeout', '$filter', '$sanitize', 'pagination', 'artemisConnection', 'artemisSession'];
})(Artemis || (Artemis = {}));
\ No newline at end of file
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/consumers.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/consumers.js
index 876c17b..71b0ff2 100644
--- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/consumers.js
+++ b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/consumers.js
@@ -66,7 +66,7 @@ var Artemis;
.name;
- function ConsumersController($scope, workspace, jolokia, localStorage, artemisMessage, $location, $timeout, $filter, pagination, artemisConsumer, artemisQueue, artemisAddress, artemisSession) {
+ function ConsumersController($scope, workspace, jolokia, localStorage, artemisMessage, $location, $timeout, $filter, $sanitize, pagination, artemisConsumer, artemisQueue, artemisAddress, artemisSession) {
var ctrl = this;
ctrl.pagination = pagination;
var mbean = Artemis.getBrokerMBean(workspace, jolokia);
@@ -128,13 +128,13 @@ var Artemis;
};
ctrl.tableColumns = [
{ header: 'ID', itemField: 'id' },
- { header: 'Session', itemField: 'session' , templateFn: function(value, item) { return '<a href="#" onclick="selectSession(\'' + item.session + '\')">' + value + '</a>' }},
+ { header: 'Session', itemField: 'session' , templateFn: function(value, item) { return '<a href="#" onclick="selectSession(' + item.idx + ')">' + $sanitize(value) + '</a>' }},
{ header: 'Client ID', itemField: 'clientID' },
{ header: 'Protocol', itemField: 'protocol' },
- { header: 'Queue', itemField: 'queue', templateFn: function(value, item) { return '<a href="#" onclick="selectQueue(\'' + item.queue + '\')">' + value + '</a>' }},
+ { header: 'Queue', itemField: 'queue', templateFn: function(value, item) { return '<a href="#" onclick="selectQueue(' + item.idx + ')">' + $sanitize(value) + '</a>' }},
{ header: 'queueType', itemField: 'queueType' },
{ header: 'Filter', itemField: 'filter' },
- { header: 'Address', itemField: 'address' , templateFn: function(value, item) { return '<a href="#" onclick="selectAddress(\'' + item.address + '\')">' + value + '</a>' }},
+ { header: 'Address', itemField: 'address' , templateFn: function(value, item) { return '<a href="#" onclick="selectAddress(' + item.idx + ')">' + $sanitize(value) + '</a>' }},
{ header: 'Remote Address', itemField: 'remoteAddress' },
{ header: 'Local Address', itemField: 'localAddress' },
{ header: 'Creation Time', itemField: 'creationTime' }
@@ -166,19 +166,22 @@ var Artemis;
ctrl.filter.values.value = artemisConsumer.consumer.sessionID;
}
- selectQueue = function (queue) {
+ selectQueue = function (idx) {
+ var queue = ctrl.consumers[idx].queue;
Artemis.log.debug("navigating to queue:" + queue)
artemisQueue.queue = { queue: queue };
$location.path("artemis/artemisQueues");
};
- selectAddress = function (address) {
+ selectAddress = function (idx) {
+ var address = ctrl.consumers[idx].address;
Artemis.log.debug("navigating to address:" + address)
artemisAddress.address = { address: address };
$location.path("artemis/artemisAddresses");
};
- selectSession = function (session) {
+ selectSession = function (idx) {
+ var session = ctrl.consumers[idx].session;
Artemis.log.debug("navigating to session:" + session)
artemisSession.session = { session: session };
$location.path("artemis/artemisSessions");
@@ -232,6 +235,7 @@ var Artemis;
var data = JSON.parse(response.value);
ctrl.consumers = [];
angular.forEach(data["data"], function (value, idx) {
+ value.idx = idx;
ctrl.consumers.push(value);
});
ctrl.pagination.page(data["count"]);
@@ -242,7 +246,7 @@ var Artemis;
ctrl.pagination.load();
}
- ConsumersController.$inject = ['$scope', 'workspace', 'jolokia', 'localStorage', 'artemisMessage', '$location', '$timeout', '$filter', 'pagination', 'artemisConsumer', 'artemisQueue', 'artemisAddress', 'artemisSession'];
+ ConsumersController.$inject = ['$scope', 'workspace', 'jolokia', 'localStorage', 'artemisMessage', '$location', '$timeout', '$filter', '$sanitize', 'pagination', 'artemisConsumer', 'artemisQueue', 'artemisAddress', 'artemisSession'];
})(Artemis || (Artemis = {}));
\ No newline at end of file
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/producers.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/producers.js
index 0df9432..428cd4d 100644
--- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/producers.js
+++ b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/producers.js
@@ -53,7 +53,7 @@ var Artemis;
.name;
- function ProducersController($scope, workspace, jolokia, localStorage, artemisMessage, $location, $timeout, $filter, pagination, artemisProducer, artemisAddress, artemisSession) {
+ function ProducersController($scope, workspace, jolokia, localStorage, artemisMessage, $location, $timeout, $filter, $sanitize, pagination, artemisProducer, artemisAddress, artemisSession) {
var ctrl = this;
ctrl.pagination = pagination;
var mbean = Artemis.getBrokerMBean(workspace, jolokia);
@@ -101,11 +101,11 @@ var Artemis;
};
ctrl.tableColumns = [
{ header: 'ID', itemField: 'id' },
- { header: 'Session', itemField: 'session' , templateFn: function(value, item) { return '<a href="#" onclick="selectSession(\'' + item.session + '\')">' + value + '</a>' }},
+ { header: 'Session', itemField: 'session' , templateFn: function(value, item) { return '<a href="#" onclick="selectSession(' + item.idx + ')">' + $sanitize(value) + '</a>' }},
{ header: 'Client ID', itemField: 'clientID' },
{ header: 'Protocol', itemField: 'protocol' },
{ header: 'User', itemField: 'user' },
- { header: 'Address', itemField: 'address', templateFn: function(value, item) { return '<a href="#" onclick="selectAddress(\'' + item.address + '\')">' + value + '</a>' }},
+ { header: 'Address', itemField: 'address', templateFn: function(value, item) { return '<a href="#" onclick="selectAddress(' + item.idx + ')">' + $sanitize(value) + '</a>' }},
{ header: 'Remote Address', itemField: 'remoteAddress' },
{ header: 'Local Address', itemField: 'localAddress' }
];
@@ -129,13 +129,15 @@ var Artemis;
ctrl.pagination.load();
};
- selectAddress = function (address) {
+ selectAddress = function (idx) {
+ var address = ctrl.producers[idx].address;
Artemis.log.debug("navigating to address:" + address)
artemisAddress.address = { address: address };
$location.path("artemis/artemisAddresses");
};
- selectSession = function (session) {
+ selectSession = function (idx) {
+ var session = ctrl.producers[idx].session;
Artemis.log.debug("navigating to session:" + session)
artemisSession.session = { session: session };
$location.path("artemis/artemisSessions");
@@ -178,6 +180,7 @@ var Artemis;
var data = JSON.parse(response.value);
ctrl.producers = [];
angular.forEach(data["data"], function (value, idx) {
+ value.idx = idx;
ctrl.producers.push(value);
});
ctrl.pagination.page(data["count"]);
@@ -188,7 +191,7 @@ var Artemis;
ctrl.pagination.load();
}
- ProducersController.$inject = ['$scope', 'workspace', 'jolokia', 'localStorage', 'artemisMessage', '$location', '$timeout', '$filter', 'pagination', 'artemisProducer', 'artemisAddress', 'artemisSession'];
+ ProducersController.$inject = ['$scope', 'workspace', 'jolokia', 'localStorage', 'artemisMessage', '$location', '$timeout', '$filter', '$sanitize', 'pagination', 'artemisProducer', 'artemisAddress', 'artemisSession'];
})(Artemis || (Artemis = {}));
\ No newline at end of file
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/queues.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/queues.js
index 71b7408..1df3af8 100644
--- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/queues.js
+++ b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/queues.js
@@ -56,7 +56,7 @@ var Artemis;
.name;
- function QueuesController($scope, workspace, jolokia, localStorage, artemisMessage, $location, $timeout, $filter, pagination, artemisQueue, artemisAddress) {
+ function QueuesController($scope, workspace, jolokia, localStorage, artemisMessage, $location, $timeout, $filter, $sanitize, pagination, artemisQueue, artemisAddress) {
var ctrl = this;
ctrl.pagination = pagination;
var mbean = Artemis.getBrokerMBean(workspace, jolokia);
@@ -128,7 +128,7 @@ var Artemis;
{ header: 'Name', itemField: 'name' },
{ header: 'Routing Types', itemField: 'routingTypes' },
{ header: 'Queue Count', itemField: 'queueCount' },
- { header: 'Address', itemField: 'address' , templateFn: function(value, item) { return '<a href="#" onclick="selectAddress(\'' + item.address + '\')">' + value + '</a>' }},
+ { header: 'Address', itemField: 'address' , templateFn: function(value, item) { return '<a href="#" onclick="selectAddress(' + item.idx + ')">' + $sanitize(value) + '</a>' }},
{ header: 'Routing Type', itemField: 'routingType' },
{ header: 'Filter', itemField: 'filter' },
{ header: 'Durable', itemField: 'durable' },
@@ -186,7 +186,8 @@ var Artemis;
function navigateToQueuesOps(action, item) {
$location.path("artemis/operations").search({"tab": "artemis", "nid": getQueuesNid(item, $location)});
};
- selectAddress = function (address) {
+ selectAddress = function (idx) {
+ var address = ctrl.queues[idx].address;
Artemis.log.debug("navigating to address:" + address)
artemisAddress.address = { address: address };
$location.path("artemis/artemisAddresses");
@@ -239,6 +240,7 @@ var Artemis;
var data = JSON.parse(response.value);
ctrl.queues = [];
angular.forEach(data["data"], function (value, idx) {
+ value.idx = idx;
ctrl.queues.push(value);
});
ctrl.pagination.page(data["count"]);
@@ -249,7 +251,7 @@ var Artemis;
ctrl.pagination.load();
}
- QueuesController.$inject = ['$scope', 'workspace', 'jolokia', 'localStorage', 'artemisMessage', '$location', '$timeout', '$filter', 'pagination', 'artemisQueue', 'artemisAddress'];
+ QueuesController.$inject = ['$scope', 'workspace', 'jolokia', 'localStorage', 'artemisMessage', '$location', '$timeout', '$filter', '$sanitize', 'pagination', 'artemisQueue', 'artemisAddress'];
})(Artemis || (Artemis = {}));
\ No newline at end of file
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/sessions.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/sessions.js
index 8abfab9..1e033f4 100644
--- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/sessions.js
+++ b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/components/sessions.js
@@ -67,7 +67,7 @@ var Artemis;
.name;
- function SessionsController($scope, workspace, jolokia, localStorage, artemisMessage, $location, $timeout, $filter, pagination, artemisConnection, artemisSession, artemisConsumer, artemisProducer) {
+ function SessionsController($scope, workspace, jolokia, localStorage, artemisMessage, $location, $timeout, $filter, $sanitize, pagination, artemisConnection, artemisSession, artemisConsumer, artemisProducer) {
var ctrl = this;
ctrl.pagination = pagination;
var mbean = Artemis.getBrokerMBean(workspace, jolokia);
@@ -127,10 +127,10 @@ var Artemis;
};
ctrl.tableColumns = [
{ header: 'ID', itemField: 'id' },
- { header: 'Connection', itemField: 'connectionID', templateFn: function(value, item) { return '<a href="#" onclick="selectConnection(\'' + item.connectionID + '\')">' + value + '</a>' }},
+ { header: 'Connection', itemField: 'connectionID', templateFn: function(value, item) { return '<a href="#" onclick="selectConnection(' + item.idx + ')">' + $sanitize(value) + '</a>' }},
{ header: 'User', itemField: 'user' },
- { header: 'Consumer Count', itemField: 'consumerCount', templateFn: function(value, item) { return '<a href="#" onclick="selectConsumers(\'' + item.id + '\')">' + value + '</a>' }},
- { header: 'Producer Count', itemField: 'producerCount', templateFn: function(value, item) { return '<a href="#" onclick="selectProducers(\'' + item.id + '\')">' + value + '</a>' }},
+ { header: 'Consumer Count', itemField: 'consumerCount', templateFn: function(value, item) { return '<a href="#" onclick="selectConsumers(' + item.idx + ')">' + $sanitize(value) + '</a>' }},
+ { header: 'Producer Count', itemField: 'producerCount', templateFn: function(value, item) { return '<a href="#" onclick="selectProducers(' + item.idx + ')">' + $sanitize(value) + '</a>' }},
{ header: 'Creation Time', itemField: 'creationTime' }
];
@@ -155,19 +155,22 @@ var Artemis;
ctrl.pagination.load();
};
- selectConnection = function (connection) {
+ selectConnection = function (idx) {
+ var connection = ctrl.sessions[idx].connectionID;
Artemis.log.debug("navigating to connection:" + connection)
artemisSession.session = { connectionID: connection };
$location.path("artemis/artemisConnections");
};
- selectConsumers = function (session) {
+ selectConsumers = function (idx) {
+ var session = ctrl.sessions[idx].id;
Artemis.log.debug("navigating to consumers:" + session)
artemisConsumer.consumer = { sessionID: session };
$location.path("artemis/artemisConsumers");
};
- selectProducers = function (session) {
+ selectProducers = function (idx) {
+ var session = ctrl.sessions[idx].id;
Artemis.log.debug("navigating to producers:" + session)
artemisProducer.producer = { sessionID: session };
$location.path("artemis/artemisProducers");
@@ -235,6 +238,7 @@ var Artemis;
var data = JSON.parse(response.value);
ctrl.sessions = [];
angular.forEach(data["data"], function (value, idx) {
+ value.idx = idx;
ctrl.sessions.push(value);
});
ctrl.pagination.page(data["count"]);
@@ -245,7 +249,7 @@ var Artemis;
ctrl.pagination.load();
}
- SessionsController.$inject = ['$scope', 'workspace', 'jolokia', 'localStorage', 'artemisMessage', '$location', '$timeout', '$filter', 'pagination', 'artemisConnection', 'artemisSession', 'artemisConsumer', 'artemisProducer'];
+ SessionsController.$inject = ['$scope', 'workspace', 'jolokia', 'localStorage', 'artemisMessage', '$location', '$timeout', '$filter', '$sanitize', 'pagination', 'artemisConnection', 'artemisSession', 'artemisConsumer', 'artemisProducer'];
})(Artemis || (Artemis = {}));
\ No newline at end of file