JBoss 5.1.0.GA - 重定向到端口 443 不工作,总是被重定向到 8443

JBoss 5.1.0.GA - Redirect to port 443 not working, always get redirected to 8443

我在设置从 8080 到端口 443 的重定向时遇到问题。

场景如下: 我有一个负载均衡器,监听端口 80 和 443。 所有对端口 80 的请求都被转发到负载均衡器后面主机上的端口 8080。 所有对端口 443 的请求都转发到负载均衡器后面主机上的端口 8443。

当请求到达端口 http://address.com 时,它正在使用负载平衡器上的端口 80 和主机上的端口 8080,这里一切正常。

重定向现在应该指向 https://address.com:443, but instead points to https://address.com:8443,负载均衡器不理解,因此请求终止。

我也尝试将 https 连接器的 https 端口更改为 443(不知道端口信息的来源)但没有效果,仍然使用端口 8443。

有人知道我需要更改什么以允许 80 -> 8080 ==> 443 -> 8443 吗?

提前致谢

这里是 server.xml HTTP 连接器:

<Connector protocol="HTTP/1.1" 
  port="8080"
  address="${jboss.bind.address}"
  connectionTimeout="20000"
  redirectPort="443"
  compression="2048"
  compressableMimeTypes="text/html,text/xml,text/plain,text/css,text/javascript"
  URIEncoding="UTF-8"/>

此处对应的HTTPS连接器:

  <Connector protocol="HTTP/1.1"
    SSLEnabled="true"
    port="8443"
    address="${jboss.bind.address}"
    compression="2048"
    compressableMimeTypes="text/html,text/xml,text/plain,text/css,text/javascript"
    scheme="https"
    secure="true"
    clientAuth="false"
    sslProtocol = "TLS" 
    ... keystore stuff ...
    />

以及来自 web.xml

的机密块
<security-constraint>
    <web-resource-collection>
        <web-resource-name>Security Required</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

我通过谷歌搜索网络找到了解决方法(丢失了我在 :( )

上找到的实际页面

在 server/default/conf/bindingservice.beans/META-INF/bindings-jboss-beans.xml 中是对重定向端口进行的 xsl 转换:

  <xsl:when test="(name() = 'redirectPort')">
    <xsl:attribute name="redirectPort">
      <xsl:value-of select="$portHttps" />
    </xsl:attribute>
  </xsl:when>

将其注释掉(将其更改为):

<!--
  <xsl:when test="(name() = 'redirectPort')">
    <xsl:attribute name="redirectPort">
      <xsl:value-of select="$portHttps" />
    </xsl:attribute>
  </xsl:when>
-->

现在重定向正确。