如何使用spring安全会话超时重定向?

如何使用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

我使用的是spring boot 2.2.0.M2 spring security这个软件包版本是5.2.0,我的项目是在vuejs 2.6.10中完成的

我想归档的内容似乎很简单,当spring安全会话超时时,我想重定向(强制浏览器)到URL

到目前为止,我一直在努力:

我已创建配置类:

@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(可能还有一个自定义响应代码或其他什么)做一些花哨的事情,否则它将无法工作。