Задать вопрос
@Afanasevek
Младший Java разработчик

Как организовать переадресацию с cas сервера?

день добрый. Имеется фронт (angular), имеется бэк API для фронта (spring boot). Хочу реализовать свой CAS сервер. В моем понимании, пользователь жмет кнопку логина, тот проверяет на наличие JWT, если нет, то выкидывает 403, фронт передресовывает на сервис CAS с формой логина и паса, после логина выдается JWT, но как теперь переадресовать пользователя обратно на тот сервис с которого он пришел и с уже имеющимся JWT токеном для этого сервиса ? Так же если моя логика понимания механизма неверная, то прошу на это указать
  • Вопрос задан
  • 67 просмотров
Подписаться 2 Средний Комментировать
Решения вопроса 1
Vamp
@Vamp
При переадресации на cas вам необходимо передать параметрами куда редиректить пользователя обратно.

Если взять этот сайт для примера (qna.habr.com), то при попытке авторизации перекидывает на
https://account.habr.com/login/?consumer=qna&ostate=bb9acafa489dc93106685c101891cfffb


Обратите внимание на параметр consumer. По нему cas определяет куда возвращать пользователя. При авторизации на хабре в этом параметре будет habr. В хабр карьере будет career. И так далее.

Как вариант можете записать в базу адрес возврата, а cas по переданному идентификатору (параметр state из примера выше) достанет адрес из базы и отправит пользователя на него.

Либо можете прям сразу конкретную ссылку передать:
https://cas.example.org/?return_to=https%3A%2F%2Fexample.com%2Farticles%3Fpage%3D8

Но в таком случае на стороне cas сервера нужно дополнительно валидировать адрес, чтобы защитить пользователей от возможного фишинга.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы