Сброс тайм-аута сессии - PullRequest
       1

Сброс тайм-аута сессии

0 голосов
/ 28 марта 2012

У меня есть веб-страница, на которой пользователь может расширить сеанс с помощью вызова AJAX на сервере.Если приложение настроило время ожидания сеанса на 30 минут, он может продлить сеанс на 5 минут, нажав кнопку.Когда этот пользователь отправляет страницы, мне нужно сбросить значение тайм-аута сеанса обратно на глобальное значение тайм-аута сеанса.

Возможно ли в Java его сбросить?или Можно ли прочитать глобальное значение тайм-аута сеанса, настроенное в файле web.xml?

РЕДАКТИРОВАТЬ:

Я использую следующий код для расширениясеанс

request.getSession().setMaxInactiveInterval(300000);

Ответы [ 3 ]

0 голосов
/ 09 апреля 2012

Я решил это, установив сеанс по умолчанию в качестве переменной сеанса при выполнении класса действия, а затем использовал его для сброса при необходимости.Я не уверен, что это правильный способ решить эту проблему.но это решит мою проблему, по крайней мере пока.

0 голосов
/ 27 июля 2018

Здесь есть функция времени ожидания и отдыха, и она будет работать в соответствии с ответом службы.

Функция установки времени:

$rootScope.SessionTime =localStorage.getItem('mint');
           $rootScope.tickDuration=1000;
                $rootScope.myInterval=setInterval(function(){

                  $rootScope.SessionTime=$rootScope.SessionTime-$rootScope.tickDuration
                  //console.log("secs:::::"+$rootScope.SessionTime);
                 if($rootScope.SessionTime<300000 && $rootScope.tickDuration >0){
                    $('#session').modal('show');
                    $rootScope.tickDuration =0;
                 }
           },$rootScope.tickDuration);

Функция времени ожидания:

 $scope.myTimeout = function(){            
           var sessionId=getcokkies.getsessionId(); 
           $http({
                   url: config.apiUrl + '/user/refreshsession?sessionId='+sessionId,
                 method: "POST",
                   headers: {
                       'Content-Type': 'application/x-www-form-urlencoded'
                   },
                   data: $.param({
                       'userId': parseInt(getcokkies.getUserId()),
                   })
               }).then(function successCallback(response) {
                   //localStorage.setItem("mint", 600000);
                    //$rootScope.SessionTime = 600000;
                   clearInterval($rootScope.myInterval); 
                   localStorage.setItem("mint", 600000); 
                   $rootScope.SessionTime =localStorage.getItem('mint');
                  // console.log("after++++"+$rootScope.SessionTime);
                   $rootScope.tickDuration=1000; 


               }, function errorCallback(response) {});

           }
0 голосов
/ 28 марта 2012

Как пользователь продлевает сеанс.Я имею в виду, вы предоставляете окно предупреждения / подтверждения JavaScript относительно него.

В идеале, сессия должна автоматически продлеваться, когда пользователь отправляет запрос на сервер.

setMaxInactiveInterval () в коде и <session-config> в web.xml должны делать то же самое в обычном сценарии.

Поделитесь точной ситуацией с вашим приложением

РЕДАКТИРОВАТЬ: отправка фиктивного запроса в JSP должна автоматически продлить сеанс как время сеансаout измеряется в терминах неактивного интервала, и фиктивный запрос должен отбрасывать неактивный интервал до сих пор.

...