为什么 Apereo CAS 服务器会重定向到 OAuth2 端点的本地主机?

Why does Apereo CAS server redirect to localhost for OAuth2 endpoint?

我在 172.16.238.10 设置了一个 CAS 服务器,它通常使用 CAS 协议。然而,对于 OAuth2 有一个奇怪的重定向行为:

请求: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

不用管这个分阶段示例的服务和 client_name 参数,但我的问题是关于主机名的:

"localhost" 是从哪里来的?我怎样才能将其配置为其他内容?

在真正的 OAuth2 webflow localhost 中根本不起作用,即使 172.16.238.10 恰好是 localhost。原因是通过将登录表单发布到本地主机,CAS 服务器随后使用本地主机 (https://localhost:8443/oauth2.0/callbackAuthorize) 重定向到自身,这将导致内部 SSL 握手错误,因为服务器的证书对本地主机无效。

很可能,您需要定义以下内容:

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

您在设置中引用了前缀,但它的定义似乎不存在。如果您不这样做,将采用默认值。

PS 始终在您的帖子中指定 CAS 版本。