找到无效的CSRF令牌用于请求

时间:2018-07-31 12:25:25

标签: angular cookies spring-security csrf x-xsrf-token

我在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 。我可以看到JSESSIONIDXSRF Cookie是根据请求发送的(使用Chrome中的开发者工具)。

但是,在Spring Server Side Application的控制台上,我得到了以下堆栈跟踪:

Invalid CSRF token found for http://localhost:8009/logout

...并且注销请求失败。

我无法理解为什么未更新XSRF令牌(如果是这样),或者为什么该令牌无效。 任何帮助表示赞赏。

0 个答案:

没有答案