Моя система использует AngularJS 1.6 и Spring Boot2.0.Мой интерфейс - это простая форма, которую клиенты могут использовать для покупки билетов на мероприятие.Когда страница загружается, она получает данные о текущем активном событии, а затем пользователи могут заполнить форму для отправки.Нет входа / регистрации, так что это как форма Google.Я построил их как отдельные проекты, поэтому они будут работать в разных портах.Теперь я хочу включить защиту csrf, но не могу заставить ее работать.
Я пытался следовать этому руководству, но без аутентификации: https://spring.io/blog/2015/01/12/the-login-page-angular-js-and-spring-security-part-ii. Когда я это сделал, я столкнулся с "Заголовок CORS «Access-Control-Allow-Origin» отсутствует »в части сведений о событии GET, поэтому я добавил фильтр CORS:
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Content-Type");
chain.doFilter(request, response);
После добавления этого мой GET работает, но я сталкиваюсь с той же ошибкой CORS, когдаЯ размещаю детали клиента.Я уже вижу XSRF-TOKEN в cookie, когда использую почтальон, но каким-то образом мой бэкэнд блокирует входящий POST.Насколько я понимаю, angular автоматически использует полученный токен XSRF, поэтому я не изменил ничего во внешнем интерфейсе при реализации Spring безопасности.
Я также пробовал этот: https://sdqali.in/blog/2016/07/20/csrf-protection-with-spring-security-and-angular-js/. И точно так жерезультат, если я просто следую учебному пособию, ошибка CORS в GET, а затем, когда я добавляю простой фильтр CORS, ошибка CORS в POST.Кажется, мои фильтры перепутаны во время выполнения.
Я попытался поиграть с кодами в этих уроках вместе с некоторыми ответами на связанные вопросы здесь, в стеке, но все они не должны иметь дело с проблемой CORS.