0

サーバーの公開鍵で SOAP メッセージを暗号化し、クライアントの秘密鍵で同じメッセージに署名したいと考えています。理想的には、署名用と暗号化用の鍵は異なるものです。

WSO2 チームの apache Rampart の例を参照していました。そのようなランパート構成のサンプルの 1 つを次に示します。

RampartConfig rampartConfig = new RampartConfig();

        Properties merlinProp = new Properties();
        merlinProp.put("org.apache.ws.security.crypto.merlin.keystore.type", "JKS");
        merlinProp.put("org.apache.ws.security.crypto.merlin.file","C:/Documents and Settings/abdul.mujeeb/workspace/Axis2Clients/src/certs/oasis.jks");
        merlinProp.put("org.apache.ws.security.crypto.merlin.keystore.password", "password");

        CryptoConfig  sigCryptoConfig = new CryptoConfig();
        sigCryptoConfig.setProvider("org.apache.ws.security.components.crypto.Merlin");
        sigCryptoConfig.setProp(merlinProp);

        CryptoConfig  encrCryptoConfig = new CryptoConfig();
        encrCryptoConfig.setProvider("org.apache.ws.security.components.crypto.Merlin");
        encrCryptoConfig.setProp(merlinProp);

        rampartConfig.setUserCertAlias("alice"); 
        rampartConfig.setEncryptionUser("bob1"); 

        rampartConfig.setSigCryptoConfig(sigCryptoConfig);
        rampartConfig.setEncrCryptoConfig(encrCryptoConfig);

        rampartConfig.setPwCbClass("com.rolta.axis2.client.UserNameCallbackHandler");

例の no where は、メッセージの暗号化に使用するサーバー公開鍵を指定します。

上記の例からのいくつかの質問:

1) rampartConfig.setEncryptionUser() 関数は何を表していますか? サーバーの公開鍵を使用して SOAP メッセージを暗号化するにはどうすればよいですか?

2) RampartConfig.setUserCertAlias() は何のために機能しますか? サイン?暗号化またはその両方?

ありがとう。

4

1 に答える 1

0

あなたが提供したのは、ランパート構成をプログラムで設定する方法です。ここでの設定方法は、城壁構成のパラメーターと同等です。これらのパラメータはすべて、rampart config guideにリストされています。

この 2 つのプロパティのより有用な説明は、このブログ投稿にあります。要するに、

encryptionUser- メッセージの暗号化に使用される公開鍵の別名。公開鍵証明書は、このエイリアスの下のキーストアで利用できます。

userCertAlias- 署名のために CallbackHandler から対応する秘密鍵のパスワードを取得するために使用されるエイリアス。

于 2013-07-12T12:14:50.080 に答える