@Afanasevek
Младший Java разработчик

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

день добрый. Имеется фронт (angular), имеется бэк API для фронта (spring boot). Хочу реализовать свой CAS сервер. В моем понимании, пользователь жмет кнопку логина, тот проверяет на наличие JWT, если нет, то выкидывает 403, фронт передресовывает на сервис CAS с формой логина и паса, после логина выдается JWT, но как теперь переадресовать пользователя обратно на тот сервис с которого он пришел и с уже имеющимся JWT токеном для этого сервиса ? Так же если моя логика понимания механизма неверная, то прошу на это указать
  • Вопрос задан
  • 64 просмотра
Решения вопроса 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 сервера нужно дополнительно валидировать адрес, чтобы защитить пользователей от возможного фишинга.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы