我在Spring中的安全配置:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.cors()
.and()
.authorizeRequests()
.antMatchers("/user/save")
.permitAll()
.and()
.authorizeRequests()
.antMatchers("/user/**")
.hasRole("USER")
.and()
.httpBasic()
.and()
.logout()
.clearAuthentication(true)
.invalidateHttpSession(true)
.deleteCookies("JSESSIONID")
.deleteCookies("XSRF-TOKEN")
.permitAll()
.and()
.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
}
我正在前端使用Angular 6。我正在端点/logout
上进行 POST 。我可以看到JSESSIONID
和XSRF
Cookie是根据请求发送的(使用Chrome中的开发者工具)。
但是,在Spring Server Side Application的控制台上,我得到了以下堆栈跟踪:
Invalid CSRF token found for http://localhost:8009/logout
...并且注销请求失败。
我无法理解为什么未更新XSRF令牌(如果是这样),或者为什么该令牌无效。 任何帮助表示赞赏。