1

WebサービスにSOAPメッセージを送信する必要があります。これはやや新しい領域なので、少し混乱しています...主題について検索して読んでいるときでさえ。これが私たちが知っている/したことです:

1) Base64のデジタル証明書を使用して認証する必要があります(CSR –証明書署名要求を発行して取得)。

2)SOAPメッセージには、セキュリティヘッダー(wss:Security xmlns:wss = "http://schemas.xmlsoap.org/ws/2002/12/secext")と本文が含まれている必要があります。

3)WSDLファイルにはHEADERセクションが含まれていませんが、ヘッダー「フィールド構造」があります

4)Axis2 / xmlbeansを使用することを決定し、https: //axis.apache.org/axis2/java/core/tools/eclipse/wsdl2java-plugin.htmlを使用してJAVAクラスを作成しました。

5)提供されているsync / asyncレジスタスタブメソッドを使用して、STUBを簡単に作成し、WSDL本体要素を送信できます(Axis2が正しいSOAPメッセージを生成すると想定しています)

質問

1)WS-Security(?)HEADERをSOAPメッセージに追加するにはどうすればよいですか。AXIS2で生成されたコードを操作する必要がありますか?

2)デジタル証明書を使用してどのように認証できますか?

ありがとう

4

1 に答える 1

0

1)WS-Security(?)HEADERをSOAPメッセージに追加するにはどうすればよいですか。AXIS2で生成されたコードを操作する必要がありますか?

ServiceClient client = stub._getServiceClient();
SOAP11Factory factory = new SOAP11Factory();
OMNamespace SecurityElementNamespace = factory.createOMNamespace("http://schemas.xmlsoap.org/ws/2002/12/secext", "wss");

OMElement usernameTokenEl = factory.createOMElement("UsernameToken", SecurityElementNamespace);
OMElement usernameEl = factory.createOMElement("Username", SecurityElementNamespace);
OMElement passwordEl = factory.createOMElement("Password", SecurityElementNamespace);
usernameEl.setText(username);
passwordEl.setText(password);
usernameTokenEl.addChild(usernameEl);
usernameTokenEl.addChild(passwordEl);

SOAPHeaderBlockImpl block = new SOAP11HeaderBlockImpl("Security", SecurityElementNamespace, factory);
block.addChild(usernameTokenEl);

client.addHeader(block);
于 2012-11-30T20:02:44.977 に答える