我正在研究Spring Boot项目和用于会话控制的WebSecurityConfig。问题是,当会话期满时,我期望将其重定向到/?sessionexpired
,而将我重定向到/?expiredsession
。同样,当用户注销时,页面将重定向到/?sessionexpired
而不是/?logout
。
我的配置如下
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/thirdparty/**", "/webjars/**", "/sessionerror").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/")
.failureUrl("/?error")
.defaultSuccessUrl("/dashboard")
.permitAll()
.and()
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/?logout")
.logoutRequestMatcher(new AntPathRequestMatcher("/logout")) // override default of only allowing POST for logout so we can use a GET
.deleteCookies("remove")
.invalidateHttpSession(true)
.permitAll()
.and()
.sessionManagement()
.maximumSessions(1)
.expiredUrl("/?expiredsession")
.maxSessionsPreventsLogin(false)
.and()
.invalidSessionUrl("/?sessionexpired");
}
有人可以帮我解决这个问题。
答案 0 :(得分:1)
所以我最终想通了。它被重定向到/?sessionexpired
,因为在注销时,我通过将其设置为true来使Session无效。我应该将其设置为false,然后使用.deleteCookies("JSESSIONID")
使会话无效。这样,它将正确重定向。