我有一个带有基于 Web 的配置 UI 的 Web 应用程序。如果用户通过 HTTP 访问,我想提醒用户他们应该真正使用 HTTPS,并给他们一个链接以单击以访问以 HTTPS 为前缀的 URL。
现在,如果我们使用默认端口,这非常简单,但通常情况下,我们不是——例如,HTTP 可能在 8080 上,HTTPS 在 8181 上。我可以有一些启发式方法来确定要使用哪个端口,例如 80->443、8080->8181,但是有没有办法从 web 容器中获取端口和协议列表?理想情况下是 Java EE 标准,但即使是特定于容器的也将是一个开始......
编辑 - 一个澄清 - 这是一个“现成的”应用程序(OpenSSO),所以我真的希望能够(a)让用户选择继续使用不安全的端口,如果他们真的想要(例如,他们在笔记本电脑上部署在没有安全端口的某个容器上)并且 (b) 不让用户编辑 server.xml。