Почему сервер 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.