Я пытаюсь интегрировать аутентификацию CAS в наши веб-службы и использовать сервер Jasig CAS (v. 4.2), веб-приложение на основе Spring.
К сожалению, сервер Jasig CAS может использовать идентификатор службы для перенаправления только после успешного входа в систему. Это неприемлемо, так как сервер CAS находится за обратным прокси и мы не используем DNS. Итак, URL-адрес для входа выглядит так:
http://a.b.c.d/cas/login?service=http://x.x.x.x/context-path/auth-entry-point
где
- a.b.c.d - внешний (прокси) IP-адрес
- x.x.x.x - внутренний (сервисный/CAS-клиент) IP-адрес
Я читал документы Jasig, но не нашел способа запутать URL-адрес службы. На данный момент я пытаюсь реализовать пользовательскую логику. Я хочу передать URL-адрес перенаправления как отдельный параметр:
http://a.b.c.d/login?service=<serviceUID_like_YYY-YYY-YYY>&redirect=<base64_encoded_URL>
.. и использовать этот параметр для перенаправления вместо идентификатора службы.
Согласно документу Jasig CAS использует Spring Webflow для реализации сценария входа в систему (login-webflow.xml). И это место, где перенаправление вызвало:
<end-state id="redirectView" view="externalRedirect:#{requestScope.response.url}"/>
Поскольку я не знаком с Spring Weblow, вопрос:
Как я могу получить параметр URL "перенаправления", декодировать и использовать его для перенаправления?
P.S. Извините за мой плохой английский, я надеюсь, что это хотя бы разборчиво :-)