0

初めての SOA クライアントを作成しようとしていますが、「双方向 SSL」の部分で問題が発生しています。

私たちのサーバーは Weblogic で実行されますが、私のアプリケーションは単純な Java コンソール アプリであり、どのコンテナーでも実行されません。

サーバーは証明書を使用し、必要とします。Godaddy.com の信頼できる証明書を使用しており、内部証明書もあります。

私たちの sysadm は、keytool を使用して JRE の「cacerts」ファイルに追加したサーバー証明書を提供してくれました。Spring-WS を使えば楽になると言われましたが、バリエーションがかなりあってなかなかうまくいかず困っています。7 件の言及がありますが、どれを使用すればよいかわかりません。彼はまた、私が個人的に認証に使用する .jks ファイルを作成しました。

この単純なアプリケーションでは、Spring をまったく使用しないことをお勧めします (SOA メソッドは、実質的な戻りデータのない単純な「コメントの追加」メソッドです。

私は MyEclipse 9.1 を使用しており、Maven4MyEclipse も使用しようとしています。

私の質問は:

認証証明書が JRE cacerts ファイルを介して利用可能になることを考えると (これを正しく理解している場合)、主に行う必要があるのは、SSL ハンドシェーク中に .jks ファイルを提示できるようにすることです。

Springなしでこれを行うことはできますか?もしそうなら、自動的に処理されるように.jksファイルでシステムプロパティを簡単に設定できる方法はありますか? それとも、承認部分を処理するために本当に Spring を使用する必要がありますか?

後者の場合、使用する Spring セキュリティ インターセプターのタイプをどのように知ることができますか? XwsSecurityInterceptor または Wss4jSecurityInterceptor?

または、別の質問がちょうど私に起こりました。.jks ファイルも cacerts ファイルに追加して、認証を自動的に処理することはできますか?

ありがとう、

ミッチ

ps 信じられないかもしれませんが、私の組織には、単にテンプレートを探すだけの既存の Java クライアントの例はないようです。

4

1 に答える 1

2

双方向認証の場合、クライアントアプリを起動するときに常に次を使用しています。

java -Djavax.net.ssl.keyStore=myClientKeystore -Djavax.net.ssl.keyStorePassword=123456 -Djavax.net.ssl.trustStore=myTrustStore -Djavax.net.ssl.trustStorePassword=123456 -Djavax.net.debug=ssl

つまり、クライアントのプライベート証明書は「myClientKeystore」にあり、サーバーのパブリック証明書は「myTrustStore」にあります。javax.net.debug=ssl を使用すると、SSL セッションを機能させることができない場合に適切なデバッグ情報が出力されるため、作業が楽になります。

それはSSL部分です。次に、SOA を Web サービスおよび SOAP と混同していると思います。SOA は通常、サービス指向アーキテクチャを意味し、非常に高レベルです。SOAP実装について話していると思います。

Web サービスが些細なものではない場合、フレームワークはあなたの生活を楽にしてくれます。Spring-ws (私も好きです) とは別に、CXF と Axis2 をググると、SOAP クライアントを作成する方法の例がたくさん見つかります。ただし、SOAP エンベロープを手動で作成できる場合は、Web サービス呼び出しを生のままで記述できます (SoapUI を使用してテスト エンベロープを生成することから始めることをお勧めします..)。

次に、次をご覧ください:このページには、フレームワークを使用せずに HTTP を介して SOAP 呼び出しを行う方法の例があります。もちろん、SSL を使用しているため、代わりに「https://」アドレスを参照する必要があります。

于 2012-08-17T19:44:04.510 に答える