2015-02-27 7 views
1

Я создал пользовательскую форму в приложении, и я установил ее действие на URL-адрес, который отображается одним из моих RestControllers. Я отправляю форму и получаю следующее сообщение об ошибке в своем браузере:Защита CSRF с пользовательской формой

Ваш запрос не может быть обработан Произошла ошибка.

Статус: Запрещено (Запрещено) Сообщение: Недействительный токен CSRF «null» был найден в параметре запроса «_csrf» или в заголовке «X-CSRF-TOKEN».

Я посмотрел в хром Дев инструментов на самом запросе и в заголовках, я нашел это:

Cookie: посетил = да; NG_TRANSLATE_LANG_KEY =% 22en% 22; tmhDynamicLocale.locale =% 22en% 22; JSESSIONID = FB0F8F19DE9B17AE4038C0149A81D829; SPRING_SECURITY_REMEMBER_ME_COOKIE = NEY5SnBQMUExcForNWFuUzVJbWlpdz09OmErQkE0bWZhbURubzFDamd5ckNJUUE9PQ; CSRF-TOKEN = ab678757-2326-4ebe-99e5-c97c1372fc9a

Означает ли это, что запрос получил токен CSRF, но с неправильным именем или thi - это что-то еще? Как я могу вставить правильный токен CSRF в форму или, скорее, как он должен туда попасть автоматически?

ответ

4

Если вы просто хотите видеть, что ваша форма работает, вы можете отключить защиту CSRF до формы URL. Просто добавьте запись на web.ignoring()

На SecurityConfiguration.java, найти метод configure и добавить запись так:

web.ignoring() .antMatchers("/api/yoururl/**") .antMatchers("/scripts/**/*.{js,html}") .antMatchers("/bower_components/**") .antMatchers("/i18n/**") .antMatchers("/assets/**") .antMatchers("/swagger-ui/**") .antMatchers("/test/**") .antMatchers("/console/**");

+0

Спасибо! Я отвечу! – nezuvian

+0

спасибо, много, он работает: D –

Смежные вопросы