Внедрить No Cache с помощью Spring Security - PullRequest
0 голосов
/ 03 февраля 2012

Я хотел бы знать, как реализовать функциональность без кэширования с помощью Spring Security.То есть, когда пользователь выходит из приложения, он / она всегда может использовать кнопку браузера назад, чтобы посетить предыдущие страницы.

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

как я могу добиться этого с помощью Spring security.

Ответы [ 2 ]

1 голос
/ 03 февраля 2012

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

Единственный способ, с помощью которого вы сможете выполнять необходимые функции, - это отправлять ajax-запрос на каждую страницу, которую вы должны увидеть, если сеанс пользователя все еще действителен. Однако этот подход становится недействительным, когда пользователь отключает JavaScript в своем браузере.

0 голосов
/ 04 февраля 2012

Я не думаю, что кэширование страниц является обязанностью безопасности приложения.
Если для вашего приложения требуется, чтобы при использовании кнопки назад отображались кэшированные страницы, ваше приложение должно отправлять заголовки без кэширования в своем ответе, примеры приведены ниже.
Если они используются, то браузер будет запрашивать страницу снова при использовании кнопки «Назад», и будет использоваться конфигурация входа в систему Spring Security и конфигурация запрещенного доступа.

Заголовки HTTP:

    response.addHeader("Pragma", "no-cache");
    response.addHeader("Cache-Control", "no-cache");

    response.addHeader("Cache-Control", "no-store");
    response.addHeader("Cache-Control", "must-revalidate");
    // expires on some date in the past
    response.addHeader("Expires", "Mon, 8 Aug 2006 10:00:00 GMT");
...