From 6087326bef3b167dfc99a508aabf2510eb101fc0 Mon Sep 17 00:00:00 2001 From: Jared Tabor Date: Tue, 3 Mar 2015 14:49:44 -0500 Subject: [PATCH] socket disconnect on session timeout the UI was trying to reconnect to the socket server using the previous session's auth token. I'm forcing a disconnect now when the session times out and i added 'force new conection' to true in the socket configuration so that when a new session starts it doesn't use the old auth token. --- awx/ui/static/js/app.js | 8 ++++++-- awx/ui/static/js/shared/Socket.js | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/awx/ui/static/js/app.js b/awx/ui/static/js/app.js index fcd78961b6..162b3967c4 100644 --- a/awx/ui/static/js/app.js +++ b/awx/ui/static/js/app.js @@ -598,7 +598,7 @@ var tower = angular.module('Tower', [ // monitor socket status checkCount = 0; - setInterval(function() { + $rootScope.dashboardInterval = setInterval(function() { if (sock.checkStatus() === 'error' || checkCount > 5) { // there's an error or we're stuck in a 'connecting' state. attempt to reconnect $log.debug('socket status: ' + sock.checkStatus()); @@ -646,8 +646,13 @@ var tower = angular.module('Tower', [ $location.path('/login'); } } else if ($rootScope.sessionTimer.isExpired()) { + // gets here on timeout if (next.templateUrl !== (urlPrefix + 'partials/login.html')) { $rootScope.sessionTimer.expireSession(); + if($rootScope.dashboardInterval){ + window.clearInterval($rootScope.dashboardInterval); + } + sock.socket.socket.disconnect(); $location.path('/login'); } } else { @@ -797,4 +802,3 @@ var tower = angular.module('Tower', [ ]); export default tower; - diff --git a/awx/ui/static/js/shared/Socket.js b/awx/ui/static/js/shared/Socket.js index b300203c4f..581444a1be 100644 --- a/awx/ui/static/js/shared/Socket.js +++ b/awx/ui/static/js/shared/Socket.js @@ -81,7 +81,8 @@ angular.module('SocketIO', ['AuthService', 'Utilities']) 'connect timeout': 3000, 'try multiple transports': false, 'max reconnection attempts': 3, - 'reconnection limit': 3000 + 'reconnection limit': 3000, + 'force new connection': true }); self.socket.on('connection', function() {