Почему сервер Apereo CAS перенаправляет на localhost для конечной точки OAuth2?

Я установил сервер CAS по адресу 172.16.238.10, который обычно работает с протоколом CAS. Однако для OAuth2 наблюдается странное поведение перенаправления:

REQ: https://172.16.238.10:8443/ooscas/oauth2.0/authorize

RESP: 302, расположение: https://localhost:8443/ooscas/login?service=https%3A%2F%2Flocalhost%3A8443%2Fooscas%2Foauth2.0%2FcallbackAuthorize%3Fclient_name%3DCasOAuthClient

Не обращайте внимания на параметры service и client_name для этого поэтапного примера, но мой вопрос касается имени хоста:

Откуда берется "localhost"? Как я могу настроить это на что-то другое?

В реальном веб-потоке OAuth2 localhost просто не будет работать, даже если 172.16.238.10 окажется localhost. Причина в том, что, отправляя форму входа на localhost, сервер CAS затем перенаправляет на себя, используя localhost (https://localhost:8443/oauth2.0/callbackAuthorize), и это приведет к внутренней ошибке установления связи SSL, поскольку сервер сертификат недействителен для localhost.

1 ответ

Решение

Скорее всего, вам нужно определить следующее:

cas.server.name=
cas.server.prefix=${cas.server.name}/cas

Вы ссылаетесь на префикс в своей настройке, но его определение отсутствует. Если вы этого не сделаете, будут приняты значения по умолчанию.

PS Всегда указывайте в постах версию CAS.

Другие вопросы по тегам