IGNITE-9555 Web Console: Fixed handling of unexpected message via web sockets.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/7242e58e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/7242e58e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/7242e58e

Branch: refs/heads/ignite-7251
Commit: 7242e58e38e6bd543db3bc382f0d40973d0f200d
Parents: 838c41a
Author: Alexey Kuznetsov <akuznet...@apache.org>
Authored: Sun Sep 16 00:06:15 2018 +0700
Committer: Alexey Kuznetsov <akuznet...@apache.org>
Committed: Sun Sep 16 00:06:15 2018 +0700

----------------------------------------------------------------------
 .../web-console/backend/app/browsersHandler.js  | 28 +++++++++++++++-----
 1 file changed, 22 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/7242e58e/modules/web-console/backend/app/browsersHandler.js
----------------------------------------------------------------------
diff --git a/modules/web-console/backend/app/browsersHandler.js 
b/modules/web-console/backend/app/browsersHandler.js
index 3ae91da..d0cd112 100644
--- a/modules/web-console/backend/app/browsersHandler.js
+++ b/modules/web-console/backend/app/browsersHandler.js
@@ -204,11 +204,19 @@ module.exports = {
 
             nodeListeners(sock) {
                 // Return command result from grid to browser.
-                sock.on('node:rest', ({clusterId, params, credentials} = {}, 
cb) => {
-                    const demo = sock.request._query.IgniteDemoMode === 'true';
+                sock.on('node:rest', (arg, cb) => {
+                    const {clusterId, params, credentials} = arg || {};
+
+                    if (!_.isFunction(cb))
+                        cb = console.log;
+
+                    const demo = _.get(sock, 'request._query.IgniteDemoMode') 
=== 'true';
+
+                    if ((_.isNil(clusterId) && !demo) || _.isNil(params)) {
+                        console.log('Received invalid message: "node:rest" on 
socket:', JSON.stringify(sock.handshake));
 
-                    if ((_.isNil(clusterId) && !demo) || _.isNil(params))
                         return cb('Invalid format of message: "node:rest"');
+                    }
 
                     const token = sock.request.user.token;
 
@@ -237,11 +245,19 @@ module.exports = {
                 this.registerVisorTask('toggleClusterState', 
internalVisor('misc.VisorChangeGridActiveStateTask'), 
internalVisor('misc.VisorChangeGridActiveStateTaskArg'));
 
                 // Return command result from grid to browser.
-                sock.on('node:visor', ({clusterId, params, credentials} = {}, 
cb) => {
-                    const demo = sock.request._query.IgniteDemoMode === 'true';
+                sock.on('node:visor', (arg, cb) => {
+                    const {clusterId, params, credentials} = arg || {};
+
+                    if (!_.isFunction(cb))
+                        cb = console.log;
+
+                    const demo = _.get(sock, 'request._query.IgniteDemoMode') 
=== 'true';
+
+                    if ((_.isNil(clusterId) && !demo) || _.isNil(params)) {
+                        console.log('Received invalid message: "node:visor" on 
socket:', JSON.stringify(sock.handshake));
 
-                    if ((_.isNil(clusterId) && !demo) || _.isNil(params))
                         return cb('Invalid format of message: "node:visor"');
+                    }
 
                     const token = sock.request.user.token;
 

Reply via email to