grails - 即使成功注销后,按浏览器后退按钮仍可重新登录

标签 grails spring-security

每当我按下浏览器后退按钮时,即使在成功注销后,它也会带我到应用程序的主页,没有任何数据。这只显示页面标题部分,按任何菜单选项会让我返回登录页面。 我正在使用 Grails-2.3.6 和 JDK-6。 那么任何人都可以告诉我可能是什么问题,因为我是 grails 的新手?

最佳答案

是web开发中的一个常见问题,页面是缓存在浏览器中的,所以当你按后退按钮时,浏览器会显示他缓存中的内容。为了解决这个问题,您需要在页面中设置过期 header 。在 grails 中,最简单的方法是使用过滤器:

使用以下内容创建文件grails-app/conf/RequestFilters.groovy:

  class RequestFilters {
     def filters = {
        requestHeadersFilter(controller: '*', action: '*') {
            after = {
                response.setHeader("Pragma", "no-cache")
                response.setDateHeader("Expires", 1L)
                response.setHeader("Cache-Control", "no-cache")
                response.addHeader("Cache-Control", "no-store")
            }
        }
     }
  }

对于 safari,您将需要另一个小技巧,将 onunload="" 添加到布局主体( View /布局)

关于grails - 即使成功注销后,按浏览器后退按钮仍可重新登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27439498/

相关文章:

java - 404 Not Found 使用 Spring Cloud Starter Security 的 Spring Boot 应用程序

maven - 测试和生产环境中的 Spring Security

java - 如何修复 Spring Security 中的角色?

java - Spring security 复制了 RemeberMeProvider

grails - Grails URL映射问题

grails - 使用 Spring Security 事件记录特定的请求 header

mysql - GORM 将外键值添加到已存在的对象

MongoDB AggregationOutput 响应时间更长

grails - grails 2.0:g:field标签,HTML5脚手架浏览器依赖性?

java - Spring Security vaadin 身份验证管理器 bean