Я пытаюсь реализовать угловое приложение с помощью этого учебника: https://spring.io/guides/tutorials/spring-security-and-angular-js/Spring Security отрицает выход из системы CSRF токена
Logging в работах и выполнение последующего HTTP требует работы, тоже. Угловая успешно добавляет токен CSRF, и Spring успешно разбирает его. Предполагая, что маркер foo
, запросы будут содержать эти заголовки:
Cookie:
JSESSIONID=...; XSRF-TOKEN=foo
X-XSRF-ЗНАК:
foo
Теперь, при попытке войти с $http.post('logout', {})
, Угловые будут использовать точно такие же заголовки. Однако Spring отвечает с помощью 403:
Недопустимый токен CSRF «null» был найден в параметре запроса «_csrf» или в заголовке «X-CSRF-TOKEN».
Это то, что моя конфигурация безопасности выглядит следующим образом:
protected void configure(HttpSecurity http) throws Exception {
http
.httpBasic().and()
.authorizeRequests()
.antMatchers("/").permitAll()
.anyRequest().authenticated().and()
.logout().and()
.addFilterBefore(new CsrfHeaderFilter(), CsrfFilter.class);
}
CsrfHeaderFilter класс explained in the tutorial (который, видимо, работает на любой другой запрос).