31

http/https プロトコルの違いを除いて、できれば同じ URL を使用して、単一の @WebService Bean を同時にセキュアおよび非セキュアの両方として実行することは可能ですか?

以下を使用して、サービスを安全または非安全に実行できます。

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

また

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

sun-ejb-jar.xml 内

すなわち。

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

提案?

4

3 に答える 3

2

なぜApacheHTTPサーバーなどでアプリサーバーをプロキシしないのですか?私は通常このようにして、SSLハンドシェイク/オープンテキスト接続をHTTPに残します。

于 2013-01-23T19:43:35.613 に答える
1

を削除するだけ<transport-guarantee>CONFIDENTIAL</transport-guarantee>で、Beanはhttpおよびhttpsでも利用できるようになります。 <transport-guarantee>CONFIDENTIAL</transport-guarantee>厳格なセキュリティを意味し、着信するhttpリクエストはすべてhttps(ssl)にリダイレクトされます。

これを削除<transport-guarantee>CONFIDENTIAL</transport-guarantee>すると、大きな柔軟性が得られます。

于 2013-01-24T11:13:25.650 に答える
1

これはかなり古い質問であることは承知しています。ただし、最近まったく同じ問題に遭遇したため、この回答を提供したいと思います。

Oracleのドキュメントによると:

  • 他のエンティティーが伝送の内容を監視できないようにするためにアプリケーションがデータを伝送する必要がある場合は、CONFIDENTIAL を指定します。
  • NONE を指定すると、コンテナーは、保護されていない接続を含め、すべての接続で制約付きの要求を受け入れる必要があることを示します。

これは単にトランスポートの保証であるため、NONE 値は必要な機能、つまり http と https リクエストの両方に応答する EJB Web サービスを提供する必要があります。

ここでの問題は、Glassfish のバグで、EJB Web サービスへの http または https リクエストを受け入れるように制限されているようです。

最後の jira タスクによると、問題は修正され、Glassfish 4.0_b75 から動作するはずです。

于 2013-10-10T13:00:52.640 に答える