Реакт + Springboot CSRF - PullRequest
       22

Реакт + Springboot CSRF

0 голосов
/ 24 января 2019

У меня есть приложение реагирования внутри проекта springboot, приложение реагирования использует вызовы rest для получения / установки вещей.На самом деле я отключил csrf в адаптере конфигурации .csrf().disable(), но я бы хотел управлять этим.Как я могу обработать токен csrf между реакцией и springboot?

Я думаю, что я должен передать токен через мой аксиос вызов, но как мне его получить?

Спасибо

1 Ответ

0 голосов
/ 25 января 2019

Вам необходимо сохранить CSRF-TOKEN в cookie и отправить его обратно с заголовком запроса.

Класс SecurityConfig.

Включить csrftokenrepsitory

         .csrf().csrfTokenRepository(csrfTokenRepository()).and().addFilterAfter(new CsrfHeaderFilter(), CsrfFilter.class).addFilterAfter(new XSSFilter(), CsrfFilter.class);

Добавить csrfTokenRepository

       private CsrfTokenRepository csrfTokenRepository() {
    HttpSessionCsrfTokenRepository repository = new HttpSessionCsrfTokenRepository();
    repository.setHeaderName(X_CSRF_TOKEN);
    return repository;
}

В ответ вы можете получить токен из куки.

    csrfToken=  cookies.get('XSRF-TOKEN');

Отправьте его следующим образом в заголовке.

     headers: {
    'X-XSRF-TOKEN': this.csrfToken,
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  },

https://github.com/supun/okta-spring-boot-react-crud-example/blob/master/src/main/java/com/okta/developer/jugtours/config/SecurityConfiguration.java

...