Устранение проблемы: У меня есть несколько полезных API, которые защищены CSRF с использованием весенней безопасности. Кроме того, к этим API-интерфейсам будет доступен от другой источник/домен Angular WEB UI. Мне не нужна Spring Authentication, так как проверка подлинности выполняется Siteminder.Весна безопасности CSRF CORS
подход: Я следовал этой ссылке из от Дейва Syer для защиты CSRF: The Login Page: Angular JS and Spring Security Part II, которая работает отлично, за исключением одного вопроса (ниже).
Issue: Этот код работа прекрасно, когда мой угловой HTML клиент доступа к RESTful API, на тот же происхождение/домен; но когда я пытаюсь получить доступ к тем же API-интерфейсам из другого источника, получив ошибку 403 - Ошибка доступа к запрету - CSRF.
подход То, что я пытался до сих пор, расширив свой пример:
Добавлен CORS фильтр - Enabling Cross Origin Requests for a RESTful Web Service
response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
Нет Luck на вышесказанном.
Просьба предложить, если мне нужно сделать что-нибудь еще, чтобы заставить его работать.
Спасибо, Суман
Большое спасибо @Dave Syer! Он работал после добавления нескольких строк углового кода для клиента отсюда: [link] https://github.com/pasupulaphani/angular-csrf-cross-domain. Кроме того, добавлены Access-Control-Allow-Headers: origin, content-type, X-CSRF-TOKEN в фильтр CORS, чтобы сделать доступным из другого источника. Access-Control-Request-Method: POST – Sum
не могли бы вы разместить сообщение о том, что вы добавили в приложение angularjs, чтобы запустить его? Спасибо! – skywalker
См. Здесь код: https://github.com/dsyer/spring-security-angular/blob/master/single/src/main/java/demo/UiApplication.java#L65 –