Spring Security:无法注销/使会话无效

时间:2014-01-10 11:01:38

标签: spring spring-security logout

我的春季安全注销配置:

<security:logout logout-success-url="/login.htm" invalidate-session="true"/>

在我的JSP中,我提供了

&LT; a href="j_spring_security_logout">Logout</a>

当我点击“退出”按钮时,它会重新定向到我的登录页面。但是当我尝试通过提供网址进入我的欢迎页面时,它允许我。只有当我再次引用该页面时,它才会提示我输入凭据

如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

听起来好像您在注销后可以看到缓存的欢迎页面。

为防止缓存,您可以向Spring调度程序配置添加interceptor,这将设置某些标头告知浏览器不要缓存。您可以将拦截器应用于所有.htm页面 - 或者如果需要,只应用于子集。要应用于所有.htm页:

<mvc:interceptor>
    <mvc:mapping path="/**/*.htm" />
    <bean class="org.springframework.web.servlet.mvc.WebContentInterceptor">
        <property name="cacheSeconds" value="0"/>
        <property name="useExpiresHeader" value="true"/>
        <property name="useCacheControlHeader" value="true"/>
        <property name="useCacheControlNoStore" value="true"/>
    </bean>
</mvc:interceptor>

答案 1 :(得分:0)

在head标签中添加此项以禁用缓存为我解决了问题

<meta http-equiv="Pragma" content="no-cache"> 
<meta http-equiv="Cache-Control" content="no-cache"> 
<meta http-equiv="Expires" content="Sat, 01 Dec 2001 00:00:00 GMT">