Как авторизовать приложение Angular5 для бэкэнда SpringBoot с помощью CAS - PullRequest
0 голосов
/ 23 октября 2018

Недавно я кодировал WebApp со следующими компонентами:

Backend: SpringBoot API с SpringSecurity, который авторизуется на стороннем сервере CAS.

Внешний интерфейс: Приложение Angular5, которое в основном запрашивает API для получения информации.

Проблемы: На самом деле у меня две проблемы:

  • Как я могусинхронизировать аутентификацию CAS между фронтом и бэкэндом?
  • Как избежать проблем с CORS, когда бэкэнд перенаправляет веб-интерфейс на страницу входа в систему?

В настоящее время, если я пытаюсь получить доступ к ресурсу в бэкэнденепосредственно он перенаправляет меня на страницу входа в CAS, если я вышел из системы, и все работает нормально.Но если я получаю доступ к ресурсу со стороны Angular, я сталкиваюсь с

Перенаправление входа в систему CAS приводит к блокированному ответу Cross-Origin Read Blocking (CORB).

Для второй проблемы я перепробовал все, что нашел в интернете, но без особого успеха.Я уже добавил @ CrossOrigin к своему контроллеру, и у меня нет проблем с CORS, если я деактивирую безопасность, но не могу найти, как ее избежать при перенаправлении на сторонний вход в систему.

Если потребуется дополнительная информация, я буду рад предоставить ее:)

Заранее спасибо!

1 Ответ

0 голосов
/ 23 октября 2018

Я консультант, работающий с крупным университетом, в котором сейчас есть несколько подпружиненных загрузочных / Angular-приложений, и мы решили эту проблему, включив приложение Angular в статические ресурсы внутреннего приложения, так что приложение Angularобслуживается встроенным веб-сервером.

Таким образом, фильтр CAS внутреннего сервера также защищает доступ к приложению Angular.

Единственное, что нам нужно было добавить к этому, былоПерехватчик Http в Angular, который улавливает ошибку Http 401, которая может произойти, если приложение Angular выполняет сервисный вызов после истечения срока действия токена CAS.Перехватчик перенаправляет на маршрут в приложении Spring Boot, которое, в свою очередь, перенаправляет на сервер CAS.

...