Как сделать недействительным сеанс в jsf 2.0, если браузер закрыли без аннулирования текущего сеанса. - PullRequest
1 голос
/ 12 октября 2011

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

и не хочу, чтобы мой пользователь получал оценку страниц ограниченного доступа с помощью кнопки "Назад".

как я могу сделать это в JSF 2.0?

1 Ответ

2 голосов
/ 12 октября 2011

как сделать недействительным сеанс в jsf 2.0, если браузер закрыли без аннулирования текущего сеанса.

Вы не можете сделать это программным путем надежным способом,Однако сессия автоматически истекает через 30 минут.Если вы откроете новый браузер, то будет создан новый сеанс, и предыдущий сеанс больше не будет доступен.


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

Вы должны указать браузеру , а не кэшировать эти пользовательские страницы с ограничениями.Вы можете сделать это, создав фильтр , который сопоставлен с шаблоном URL, который охватывает эти страницы и выполняет следующую работу в методе doFilter():

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest httpReq = (HttpServletRequest) request;
    HttpServletResponse httpRes = (HttpServletResponse) response;

    if (!httpReq.getRequestURI().startsWith(httpReq.getContextPath() + ResourceHandler.RESOURCE_IDENTIFIER)) { // Skip JSF resources (CSS/JS/Images/etc)
        httpRes.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
        httpRes.setHeader("Pragma", "no-cache"); // HTTP 1.0.
        httpRes.setDateHeader("Expires", 0); // Proxies.
    }

    chain.doFilter(request, response);
}

Таким образом, браузерпринудительно отправлять полный HTTP-запрос каждый раз вместо отображения страницы из кэша браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...