2017-02-06 7 views
0

Я знаю, что мы можем session.setMaxInactiveInterval(1200); установить время истечения сеанса при простоях. У меня есть требование, как пользовательский сеанс должен истекать в определенный момент времени.Весенняя сессия MVC Макс. Время жизни

Например, если пользователь настроен для доступа с 9:00 до 9:00, он должен получить принудительный выход в 9 вечера.

Есть ли какая-либо функция, например session.maxLife(1200); или любое другое решение для этого?

+0

Если я понимаю, вы хотите завершить сеанс в определенное время? – Hrabosch

+0

@Hrabosch Либо в определенное время или после определенного интервала; в зависимости от того, что возможно – Saju

+0

Итак, я не знаю ни о чем, как вы могли бы это достичь. Но, возможно, вы можете установить тайм-аут сеанса всегда, установив время жизни, вычислив в определенное время. Я имею в виду что-то вроде сеанса, созданного сейчас, поэтому проверьте, что такое время, вычислите всю жизнь из этого. Но я никогда не пробовал! Просто идея сейчас. – Hrabosch

ответ

1

Я думаю, что вы пытаетесь достичь, можно сделать через перехватчики. Только разница заключается в том, что вместо того, чтобы сначала определять жизненный цикл, вы произвольно блокируете/разрешаете запрос после анализа сеанса. Различные методы, доступные в сеансе, перечислены в http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpSession.html.

Вы можете установить пользовательские атрибуты для каждого сеанса, такие как accessStartTime, accessEndTime и каждый раз читать их в перехватчике для всех запросов. Если текущее время не находится в диапазоне времени доступа пользователя, вы можете вызвать недействительность для объекта сеанса.

+0

Спасибо за предложение. Однако я искал решение без перехватчиков/фильтров. Я хочу использовать любую встроенную функцию весной, избегая накладных расходов на эту проверку по каждому запросу – Saju