Web applications 如何从JavaEEWeb应用程序枚举HTTP侦听器

Web applications 如何从JavaEEWeb应用程序枚举HTTP侦听器,web-applications,ssl,jakarta-ee,https,Web Applications,Ssl,Jakarta Ee,Https,我有一个基于web的配置UI的web应用程序。如果用户通过HTTP访问,我想提醒用户,他们真的应该使用HTTPS,并给他们一个链接,让他们点击以获得HTTPS前缀的URL 现在,如果我们在默认端口上,这是非常简单的,但通常情况下,我们不是-例如,HTTP可能在8080上,HTTPS在8181上。我可以用一些试探法来确定使用哪个端口,例如80->443、8080->8181,但是有没有办法从web容器中获取端口和协议列表?理想的JavaEE标准,但即使是特定于容器的标准也是一个开始 编辑-一个澄清

我有一个基于web的配置UI的web应用程序。如果用户通过HTTP访问,我想提醒用户,他们真的应该使用HTTPS,并给他们一个链接,让他们点击以获得HTTPS前缀的URL

现在,如果我们在默认端口上,这是非常简单的,但通常情况下,我们不是-例如,HTTP可能在8080上,HTTPS在8181上。我可以用一些试探法来确定使用哪个端口,例如80->443、8080->8181,但是有没有办法从web容器中获取端口和协议列表?理想的JavaEE标准,但即使是特定于容器的标准也是一个开始


编辑-一个澄清-这是一个“现成”的应用程序(),因此我真的希望(a)让用户可以选择继续使用不安全的端口,如果他们真的想(例如,他们在笔记本电脑上部署在没有安全端口的某个容器上)和(b)不允许用户编辑server.xml。

您可以仅通过配置将其自动传输到https

在web.xml中:

<user-data-constraint>
  <transport-guarantee>
    CONFIDENTIAL
  </transport-guarantee>
</user-data-constraint>

如果您有一个负载平衡器,通常可以将其配置为自动执行这种重定向。

如果我正确阅读了您的问题,您可以查询以查看连接是以HTTP还是HTTPS以及哪个版本进行的。作为奖励,您可以获得哪个端口

做出决定并重定向(或转发)到应用程序指定的端口

为进一步澄清,请答复

redirectPort="YOUR_SSL_PORT"