我正在使用spring security,我想知道如何解决这个后退按钮或浏览器的问题。
事情是我登录后,当我点击后退按钮。我再次来到登录页面。即使单击后退按钮,您仍然只能保留在登录主页中,这将是非常好的。
同样必须是如果我退出它不应该像我点击后退按钮我再次登录主页。我不知道如何解决这个问题。我知道浏览器会缓存页面但是当我使用像facebook或yahoo这样的标准网站时,看起来已经有了一些解决方案。任何方向或信息都会非常有用。?
答案 0 :(得分:5)
部分问题来自浏览器缓存。您可以通过多种方式禁用它:
<mvc:annotation-driven/>
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**/*"/>
<bean id="webContentInterceptor" 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>
</mvc:interceptors>
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
<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">
答案 1 :(得分:1)
您是否尝试过Spring Security的内置cache control:
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// ...
.headers()
.defaultsDisabled()
.cacheControl();
}
}