2015-11-04 44 views
2

我正在使用Spring Security。一旦用户注销,然后他按下浏览器上的按钮,最后一页显示出来。当然,当用户尝试在页面上执行一些操作时,他会被重定向到登录页面。但要求是,除非他已登录,否则他应该甚至无法看到应用程序的任何页面。用户注销后重定向到登录页面,然后用弹簧安全按下浏览器后退按钮

我已经在另一个Web应用程序中使用过滤器实现了此功能。但是,由于Spring Security对过滤器本身的基本原理起作用,所以我认为应该有一种方法可以在不使用单独的自定义过滤器的情况下实现此功能。

+2

这可以是你的解决方案http://stackoverflow.com/questions/18147302/how-to-handle-back-button-using-spring-security –

+0

这表明如何强制浏览器做这项工作。使用弹簧安全措施是否无法处理? – romhail

回答

2

您使用的是哪种版本的弹簧安全?你使用<headers><cache-control /></headers>配置吗?

需要以下的强制上后退按钮刷新:

Cache-Control: no-store, must-revalidate 
1

为了使浏览器不要对back button点击显示cached页面,则需要disable cache。默认情况下,Spring Security不会注入缓存头。 通过在spring-securityConfig.xml(类似的文件)文件中执行此配置可轻松实现此目的。 我假设你正在使用XML配置,因此你可以设置

<security:http ........> 
    <security:headers> 
     <security:cache-control /> 
    </security:headers> 
</security:http> 

请注意,你可以做上面的配置更改后,进入一个新的问题。您会注意到,每次加载新页面时,此标头都会使浏览器请求.js.cssstatic resources。这会妨碍性能,并且希望这些静态内容被缓存。在这种情况下,您需要configure春季安全上static contents如下申请configuration:这里

<!-- Static content, must be declare before your form login config --> 
<security:http pattern="/resources/**" security="none" /> 

假设你static contentsresources

如有任何问题,欢迎随时评论!

相关问题