在grails中注销后,用户仍然可以查看前一页面

Aas*_*kar 4 grails

在我的grails项目中,我使用的是spring security core插件.我提供了注销链接

<g:link controller="logout">Logout</g:link> in my gsp pages. 
Run Code Online (Sandbox Code Playgroud)

LogoutController中的代码为:

class LogoutController {

/**
 * Index action. Redirects to the Spring security logout uri.
 */
def index = {
    // TODO put any pre-logout code here
        session.invalidate()
        redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl // '/j_spring_security_logout'
 }
}
Run Code Online (Sandbox Code Playgroud)

当用户单击它时,它会将用户重定向到登录页面.但是,如果用户单击浏览器的后退按钮,则用户可以看到上一个工作页面.我不想将他重定向到上一页,他应该留在登录页面上.我能做些什么?

附加信息:我创建了一个标记库,用于检查登录用户的用户名.如果是匿名的,它会重定向到登录页面或将其发送到主页.但是使用它,用户必须点击某些东西.因为当前注销后,用户可以通过单击后退按钮查看上一页.我不想在前一页重定向他.他应该留在登录页面上.

Fre*_*eki 8

很简单,只需将此代码放在所有页面中:

<%
response.setHeader("Cache-Control","no-cache");  

response.setHeader("Cache-Control","no-store");     

response.setDateHeader("Expires", 0); 

response.setHeader("Pragma","no-cache");

%>
Run Code Online (Sandbox Code Playgroud)

  • 我们确实在grails中使用布局,并且我们通常对登录页面使用不同的布局.所以我们只需要将上面的代码放在布局页面上. (2认同)