如何使用spring安全会话超时重定向?
我使用的是spring boot 2.2.0.M2 spring security这个软件包版本是5.2.0,我的项目是在vuejs 2.6.10中完成的 我想归档的内容似乎很简单,当spring安全会话超时时,我想重定向(强制浏览器)到URL 到目前为止,我一直在努力: 我已创建配置类:如何使用spring安全会话超时重定向?,spring,spring-boot,spring-security,thymeleaf,Spring,Spring Boot,Spring Security,Thymeleaf,我使用的是spring boot 2.2.0.M2 spring security这个软件包版本是5.2.0,我的项目是在vuejs 2.6.10中完成的 我想归档的内容似乎很简单,当spring安全会话超时时,我想重定向(强制浏览器)到URL 到目前为止,我一直在努力: 我已创建配置类: @Configuration public class SpringSecurityConfig extends WebSecurityConfigurerAdapter { @Override
@Configuration
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter
{
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable()
.formLogin()
.loginPage("/")
.defaultSuccessUrl("/admin#/timetable")
.permitAll()
.and().logout()
.logoutSuccessUrl("/")
.permitAll()
.and()
.sessionManagement()
.maximumSessions(1)
.expiredUrl("/")
.expiredSessionStrategy(event -> event.getResponse().sendRedirect("/"));
// this supoose to work right?
}
}
在我的application.properties中,我为测试紫色房屋添加了:
# Server
server.servlet.session.timeout=1m
一分钟后什么也没发生
所以我想可能是出了什么问题,会话并没有超时,所以我在调试模式下运行了我的应用程序,并设置了断点
package org.springframework.security.web.session;
...
public class HttpSessionEventPublisher implements HttpSessionListener
{
...
public void sessionDestroyed(HttpSessionEvent event) {
//my break point
}
}
一分钟后,调试器在sessionDestroyed方法中停止,所以会话不再存在
关于我的UI,我正在使用嵌入百里香叶子页面的vuejs:
所以我的问题是,您知道如何在spring安全会话过期(超时)时强制浏览器重新加载我的应用程序或重定向到吗?可能重复,或者您不能。顾名思义,VueJS是JavaScript,它不能很好地处理重定向(或者实际上浏览器正在处理重定向)。因此,除非您使用JavaScript(可能还有一个自定义响应代码或其他什么)做一些花哨的事情,否则它将无法工作。