wildfly 16 - UT 010053:没有机密端口可用于重定向当前请求
Posted
技术标签:
【中文标题】wildfly 16 - UT 010053:没有机密端口可用于重定向当前请求【英文标题】:wildlfy 16 - UT010053: No confidential port is available to redirect the current request 【发布时间】:2021-01-19 00:17:15 【问题描述】:我的设置:一个 https 负载均衡器,带有在域模式下运行的 http wildflynodes 通过 https 负载均衡器进入应用程序节点:443 到 8080 & 8180 - 应用程序转发工作,应用程序的所有功能都可以使用。
这个问题只出现在 SOAP-Webservice 上。
wsdl 可以在 https//loadbalancerurl:443/.. 下访问,问题来自于访问 webservice 方法。
问题似乎是从 443 转发到机密端口 8443 - 错误消息是发生从客户端访问 SOAP-webservice 时:
UT010053:没有机密端口可用于重定向当前请求。
我知道这来自这里的 Undertow-Servlet:
protected URI getRedirectURI(HttpServerExchange exchange) throws URISyntaxException
int port = portManager.getConfidentialPort(exchange);
if (port < 0)
throw MESSAGES.noConfidentialPortAvailable();
return super.getRedirectURI(exchange, port);
所以端口是
那么问题是如何为 Undertow 实现将交付的机密端口 = 以正确的方式配置?
我的域 xml 包含:
<server name="default-server">
<ajp-listener name="ajp" socket-binding="ajp"/>
<http-listener name="default" socket-binding="http" certificate-forwarding="true" proxy-address-forwarding="true" />
</server>
<socket-binding-group name="pze4-sockets" default-interface="public">
<socket-binding name="ajp" port="$jboss.ajp.port:8009"/>
<socket-binding name="http" port="$jboss.http.port:8080"/>
<socket-binding name="https" port="$jboss.https.port:8443"/>
<socket-binding name="iiop" interface="unsecure" port="3528"/>
<socket-binding name="iiop-ssl" interface="unsecure" port="3529"/>
<socket-binding name="txn-recovery-environment" port="4712"/>
<socket-binding name="txn-status-manager" port="4713"/>
<outbound-socket-binding name="mail-smtp">
<remote-destination host="localhost" port="25"/>
</outbound-socket-binding>
</socket-binding-group>
在应用程序中配置了 jboss-webservices.xml Confidential:
<?xml version="1.0" encoding="UTF-8" ?>
<webservices xmlns="http://www.jboss.com/xml/ns/javaee">
<port-component>
<ejb-name>MyWebservice</ejb-name>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</port-component>
</webservices>
负载均衡器和 wildfly-nodes 的相同设置适用于 Wildfly8 的 SOAP Web 服务。
到目前为止我的尝试:
添加 https-listener 没有帮助:
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm"/>
来自的提示也不起作用:
https://developer.jboss.org/thread/270026
将 SSL-cetrifacate 添加到节点上的 java 也没有帮助。
有什么想法吗?
提前致谢
【问题讨论】:
我也面临同样的问题,这是由于我的web.xml
文件中的配置。有类似<transport-guarantee>CONFIDENTIAL</transport-guarantee>
【参考方案1】:
您在 http-listener 中缺少 redirect-socket 属性,它解决了我的问题 看这里:https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.0/html/configuration_guide/configuring_the_web_server_undertow
【讨论】:
以上是关于wildfly 16 - UT 010053:没有机密端口可用于重定向当前请求的主要内容,如果未能解决你的问题,请参考以下文章
Wildfly 9:通过编程[max-post-size]而不是修改standalone.xml来设置Undertow