サーバーの公開鍵で 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() は何のために機能しますか? サイン?暗号化またはその両方?
ありがとう。