Glassfish JAX-WS 并排 SSL / 不安全的 EJB Web 服务

Posted

技术标签:

【中文标题】Glassfish JAX-WS 并排 SSL / 不安全的 EJB Web 服务【英文标题】:Glassfish JAX-WS side by side SSL / insecure EJB webservice 【发布时间】:2011-02-24 02:39:09 【问题描述】:

是否可以同时以安全和不安全的方式运行单个 @WebService bean,最好使用相同的 URL,但 http/https 协议不同?

我可以使用以下方式安全或不安全地运行服务:

<transport-guarantee>CONFIDENTIAL</transport-guarantee>

<transport-guarantee>NONE</transport-guarantee>

在 sun-ejb-jar.xml 中

IE。

<ejb>
  <ejb-name>MyEJB</ejb-name>
  <webservice-endpoint>
    <port-component-name>MyWebService</port-component-name>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </webservice-endpoint>
</ejb>

建议?

【问题讨论】:

我不清楚细节......所以我不会提交这个作为答案......你可能想深入研究灰熊端口统一的话题。看起来这样可以让你做你想做的事。 谢谢 vkraemer 我会看看那个。 NONE 和启用了 http SSL 的侦听器会发生什么情况? NONE 并不排除 SSL 也可以工作。如果您可以安装 apache,则另一个选项 httpd w/mod_ssl + mod_jk/ajp 可能会起作用。 @Chase 不幸的是 NONE 它只会从不安全的侦听器路由。 mod_ssl 绝对是适用于任何生产场景的方式。 【参考方案1】:

我知道这是一个很老的问题。但是,我想提供这个答案,因为我最近遇到了完全相同的问题。

根据 Oracle 文档:

当应用程序要求传输数据以防止其他实体观察传输内容时,指定 CONFIDENTIAL。 指定 NONE 表示容器必须接受任何连接上的受限请求,包括未受保护的请求。

由于这只是一个传输保证,NONE 值应该为您提供所需的功能,即 EJB Web 服务同时响应 http 和 https 请求。

这里的问题是 Glassfish 中的一个错误,它显然限制您接受对您的 EJB Web 服务的 http 或 https 请求:

Glassfish 2.x 中的错误:https://java.net/jira/browse/GLASSFISH-5621 Glassfish 3.x 中的错误:https://java.net/jira/browse/GLASSFISH-19293

根据上一个 jira 任务,该问题应该已得到修复,并且可以从 Glassfish 4.0_b75 开始运行。

【讨论】:

【参考方案2】:

只需删除&lt;transport-guarantee&gt;CONFIDENTIAL&lt;/transport-guarantee&gt;,您的 bean 也将在 http 和 https 上可用。 &lt;transport-guarantee&gt;CONFIDENTIAL&lt;/transport-guarantee&gt; 表示严格的安全性,任何来的http请求都会重定向到https(ssl)。

删除此&lt;transport-guarantee&gt;CONFIDENTIAL&lt;/transport-guarantee&gt; 您将获得极大的灵活性。

【讨论】:

【参考方案3】:

为什么不使用 Apache HTTP 服务器或类似服务器代理应用服务器?我通常这样做,并将 SSL 握手/打开文本连接到 HTTP 放在它前面。

【讨论】:

以上是关于Glassfish JAX-WS 并排 SSL / 不安全的 EJB Web 服务的主要内容,如果未能解决你的问题,请参考以下文章

通过 CXF 在 SSL 上配置 JAX-WS

Java Paypal 集成 SOAP JAX-WS - SSL 握手异常

Glassfish ssl安装与certbot

在本地主机上的 glassfish 4.0 上实现 ssl

在 SSL 卸载程序和 Apache 之后的 Glassfish HTTPS 重定向

在Glassfish Application Server中导入SSL证书