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

时间:2015-03-09 13:37:52

标签: java redirect jboss

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

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

当请求来自端口http://address.com时,它在负载均衡器上使用端口80,在主机上使用端口8080,这里一切都很好。

重定向现在应该指向https://address.com:443,而是指向负载均衡器不理解的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>

1 个答案:

答案 0 :(得分:2)

我在网上搜索了一个解决方法(丢失了我发现的实际页面:()

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

现在正确重定向。