You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ni...@apache.org on 2021/10/05 11:15:51 UTC
[ranger] branch master updated: RANGER-3457 : [Session
Timeout-Ranger]With multiple tabs if one tab encounters session idle
timeout other active tab still continues with old/invalid session cookie.
This is an automated email from the ASF dual-hosted git repository.
ni3galave pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new d7a3de1 RANGER-3457 : [Session Timeout-Ranger]With multiple tabs if one tab encounters session idle timeout other active tab still continues with old/invalid session cookie.
d7a3de1 is described below
commit d7a3de193d45f00ef20ef8859d025b444b2dba0b
Author: Nitin Galave <ni...@apache.org>
AuthorDate: Thu Sep 30 14:28:19 2021 +0530
RANGER-3457 : [Session Timeout-Ranger]With multiple tabs if one tab encounters session idle timeout other active tab still continues with old/invalid session cookie.
---
.../main/webapp/scripts/controllers/Controller.js | 6 ++-
.../main/webapp/scripts/controllers/NController.js | 6 ++-
.../webapp/scripts/modules/globalize/message/en.js | 2 +-
.../src/main/webapp/scripts/utils/XAUtils.js | 45 +++++++++++++---------
4 files changed, 36 insertions(+), 23 deletions(-)
diff --git a/security-admin/src/main/webapp/scripts/controllers/Controller.js b/security-admin/src/main/webapp/scripts/controllers/Controller.js
index aab73b6..74f2af5 100755
--- a/security-admin/src/main/webapp/scripts/controllers/Controller.js
+++ b/security-admin/src/main/webapp/scripts/controllers/Controller.js
@@ -34,10 +34,12 @@ define(function(require) {
console.log("initialize a Controller Controller");
if (App.userProfile && App.userProfile.get('configProperties') && App.userProfile.get('configProperties').inactivityTimeout
&& App.userProfile.get('configProperties').inactivityTimeout > 0) {
- XAUtil.setIdealActivityTime()
+ XAUtil.setIdleActivityTime()
$('#contentBody').on("click mousemove keyup mousedown scroll keypress", function(e){
// do preload here
- XAUtil.setIdealActivityTime()
+ if ($('.stayLoggdedIn-popup').length == 0) {
+ XAUtil.setIdleActivityTime()
+ }
})
}
var vTopNav = require('views/common/TopNav');
diff --git a/security-admin/src/main/webapp/scripts/controllers/NController.js b/security-admin/src/main/webapp/scripts/controllers/NController.js
index 2598035..6f97a31 100644
--- a/security-admin/src/main/webapp/scripts/controllers/NController.js
+++ b/security-admin/src/main/webapp/scripts/controllers/NController.js
@@ -33,10 +33,12 @@ define(function(require) {
console.log("initialize a Controller Controller");
if (App.userProfile && App.userProfile.get('configProperties') && App.userProfile.get('configProperties').inactivityTimeout
&& App.userProfile.get('configProperties').inactivityTimeout > 0) {
- XAUtil.setIdealActivityTime()
+ XAUtil.setIdleActivityTime()
$('#contentBody').on("click mousemove keyup mousedown scroll keypress", function(e){
// do preload here
- XAUtil.setIdealActivityTime()
+ if ($('.stayLoggdedIn-popup').length == 0) {
+ XAUtil.setIdleActivityTime()
+ }
})
}
var vTopNav = require('views/common/TopNav');
diff --git a/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js b/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
index 46e4c19..1d87d16 100644
--- a/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
+++ b/security-admin/src/main/webapp/scripts/modules/globalize/message/en.js
@@ -515,7 +515,7 @@ define(function(require) {
preventNavGroupForm : 'Group form edit is in progress. Please save/cancel changes before navigating away!',
preventNavUserList : 'Some Users/Groups have been edited. Kindly save your changes before navigating away!',
preventNavZoneForm : 'Zone form edit is in progress. Please save/cancel changes before navigating away!',
- idelTimeOutMsg : 'Because you have been inactive, your session is about to expire.'
+ idleTimeOutMsg : 'Because you have been inactive, your session is about to expire.'
},
validationMessages : {
diff --git a/security-admin/src/main/webapp/scripts/utils/XAUtils.js b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
index 49f03d1..bddf53d 100644
--- a/security-admin/src/main/webapp/scripts/utils/XAUtils.js
+++ b/security-admin/src/main/webapp/scripts/utils/XAUtils.js
@@ -1910,57 +1910,66 @@ define(function(require) {
}
}
- XAUtils.setIdealActivityTime = function() {
+ XAUtils.setIdleActivityTime = function() {
var App = require('App');
var INACTIVITY_TIME_OUT = 900;
if (App.userProfile && App.userProfile.get('configProperties') && App.userProfile.get('configProperties').inactivityTimeout) {
INACTIVITY_TIME_OUT = parseInt(App.userProfile.get('configProperties').inactivityTimeout);
}
INACTIVITY_TIME_OUT *= 1000;
- localStorage.setItem('idealTimeOut', moment().add(INACTIVITY_TIME_OUT, 'milliseconds').valueOf());
+ localStorage.setItem('idleTimeOut', moment().add(INACTIVITY_TIME_OUT, 'milliseconds').valueOf());
localStorage.setItem('idleTimerLoggedOut', false);
- XAUtils.setIdealActivityTime = function () {
- localStorage.setItem('idealTimeOut', moment().add(INACTIVITY_TIME_OUT, 'milliseconds').valueOf());
+ XAUtils.setIdleActivityTime = function () {
+ localStorage.setItem('idleTimeOut', moment().add(INACTIVITY_TIME_OUT, 'milliseconds').valueOf());
var isLoggedOut = localStorage.getItem('idleTimerLoggedOut') == "true";
if (isLoggedOut) {
localStorage.setItem('idleTimerLoggedOut', false);
}
XAUtils.startIdealActivityInterval()
}
+ XAUtils.setIdleActivityTime();
};
XAUtils.startIdealActivityInterval = function () {
clearInterval(XAUtils.activityIntervalID)
XAUtils.activityIntervalID = setInterval(function() {
- var idealTimeVal = parseInt(localStorage.getItem('idealTimeOut'));
- if(moment().isAfter(moment(idealTimeVal))) {
+ var idleTimeVal = parseInt(localStorage.getItem('idleTimeOut'));
+ if(moment().isAfter(moment(idleTimeVal))) {
clearInterval(XAUtils.activityIntervalID)
var isLoggedOut = localStorage.getItem('idleTimerLoggedOut') == "true";
if(isLoggedOut) {
localStorage.setItem('idleTimerLoggedOut', 'false');
- XAUtils.idealActivityLogout();
+ XAUtils.idleActivityLogout();
} else {
- XAUtils.idelTimePopup();
+ XAUtils.idleTimePopup();
}
}
}, 2000);
};
- XAUtils.idelTimePopup = function() {
+ XAUtils.idleTimePopup = function() {
var timeLeft = 15;
var $elem = '<div id="Timer"></div>';
function countdown() {
- if (timeLeft == 0) {
+ var idleTimeVal = parseInt(localStorage.getItem('idleTimeOut'));
+ if (timeLeft == 0 ) {
clearTimeout(timerId);
- localStorage.setItem('idleTimerLoggedOut', 'false');
- XAUtils.idealActivityLogout();
+ if (!moment().isAfter(moment(idleTimeVal))) {
+ bootbox.hideAll()
+ } else {
+ localStorage.setItem('idleTimerLoggedOut', 'false');
+ XAUtils.idleActivityLogout();
+ }
} else {
var isLoggedOut = localStorage.getItem('idleTimerLoggedOut') == "true";
if(isLoggedOut) {
clearTimeout(timerId);
localStorage.setItem('idleTimerLoggedOut', 'false');
- XAUtils.idealActivityLogout();
+ XAUtils.idleActivityLogout();
+ } else if (!moment().isAfter(moment(idleTimeVal))) {
+ bootbox.hideAll()
+ clearTimeout(timerId);
} else {
$.find('#Timer')[0].innerHTML ='Time left : '+ timeLeft + ' seconds remaining';
timeLeft--;
@@ -1969,15 +1978,15 @@ define(function(require) {
}
bootbox.dialog({
title: 'Session Expiration Warning',
- message: '<span class="inline-block">' + localization.tt('dialogMsg.idelTimeOutMsg') +'<br>'+ $elem + '</span>',
+ message: '<span class="inline-block">' + localization.tt('dialogMsg.idleTimeOutMsg') +'<br>'+ $elem + '</span>',
closeButton: false,
buttons: {
noclose: {
"label" : localization.tt('btn.stayLoggdedIn'),
- "className" : "btn-success btn-sm",
+ "className" : "btn-success btn-sm stayLoggdedIn-popup",
"callback" : function() {
clearTimeout(timerId);
- XAUtils.setIdealActivityTime()
+ XAUtils.setIdleActivityTime()
}
},
cancel: {
@@ -1985,7 +1994,7 @@ define(function(require) {
"className" : "btn-danger btn-sm",
"callback" : function() {
localStorage.setItem('idleTimerLoggedOut', 'false');
- XAUtils.idealActivityLogout();
+ XAUtils.idleActivityLogout();
}
}
}
@@ -1996,7 +2005,7 @@ define(function(require) {
return false;
};
- XAUtils.idealActivityLogout = function () {
+ XAUtils.idleActivityLogout = function () {
var App = require('App');
// localStorage.setItem('idleTimerLoggedOut', true);
if(localStorage.getItem('idleTimerLoggedOut') == "false") {