【问题标题】:Why does Apereo CAS server redirect to localhost for OAuth2 endpoint?为什么 Apereo CAS 服务器会重定向到 OAuth2 端点的 localhost?
【发布时间】:2020-08-04 06:25:27
【问题描述】:

我在 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

不要介意这个分阶段示例的 service 和 client_name 参数,但我的问题是关于主机名:

“本地主机”从何而来?如何将其配置为其他内容?

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

【问题讨论】:

  • 你能分享你的 cas.properties 文件吗?
  • 我有一个 application.properties,因为它是一个 Spring 应用程序。 CAS 的条目在这里:pastebin.com/fhuqZW54

标签: oauth-2.0 cas apereo


【解决方案1】:

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

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

您在设置中引用了前缀,但它的定义似乎不存在。如果你没有这样做,就会使用默认值。

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

【讨论】:

  • 很抱歉忘记了这些参数(它们设置在我没有看到的不同位置)和 CAS 版本,为了完整起见,它是 5.3.9。您的回答解决了问题,非常感谢。
猜你喜欢
  • 2020-08-07
  • 2020-04-20
  • 1970-01-01
  • 1970-01-01
  • 2020-04-19
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多