Webサービス用のWSDLが提供されています。私は今、その要求にデジタル署名する必要があります。以前の開発者は、Eclipse機能を使用してプロキシクラスを生成していました。プロジェクトにWSDLを追加し、右クリックして「Webサービス」をクリックし、「クライアントの生成」をクリックします。WSS4J経由でEclipse生成プロキシ(軸1.4)を使用してSOAPリクエストにデジタル署名する方法はありますか?
リクエストをデジタル署名する必要があるまで、これはうまくいきました。私はいくつかの掘り出しを行い、Axis 1.4ではリクエストに署名することはできません。 WSS4Jを使ってそれを行うことができます。私はWSS4j 1.5で私のプロジェクトに参加しました。
私はリクエストにデジタル署名する方法を失いました。ここでは、プロキシクラスを使用して、私の既存のコードされています
XiSecureWSServiceLocator service = new XiSecureWSServiceLocator();
service.setXiSecureWSServicePortEndpointAddress(paymetricPortAddress);
XiSecureWSPortType proxy = service.getXiSecureWSServicePort();
((Stub) proxy).setTimeout(paymetricTimeOutinMillisec);
SDecrypt_InputType sdi = new SDecrypt_InputType();
sdi.setStrToken(ccNumber);
sdi.setStrUserID(user);
SDecrypt_OutputType sdo = null;
sdo = proxy.pm_SingleDecrypt(sdi);
私が何をしたいのかはthis articleに似たものです。ここでは、彼らが使用する関数は次のとおりです。
public Message signSOAPEnvelope(SOAPEnvelope
unsignedEnvelope) throws Exception
{
WSSignEnvelope signer = new WSSignEnvelope();
String alias = "16c73ab6-b892-458f-abf5-2f875f74882e";
String password = "security";
signer.setUserInfo(alias, password);
Document doc = unsignedEnvelope.getAsDocument();
Document signedDoc = signer.build(doc, crypto);
// Convert the signed document into a SOAP message.
Message signedSOAPMsg =
(org.apache.axis.Message)AxisUtil.toSOAPMessage(signedDoc);
return signedSOAPMsg;
}
は、どのように私はそれを作成するために、すべてのコードが生成されたプロキシクラスで隠されているとき、SOAPエンベロープが署名するために得ることができますか?この発見
私はWSS4Jフレームワークを使用したいと思いますが、Soap Request XMLにはアクセスできません。そのすべては、私のために生成された "pm_SingleDecrypt"プロキシコードファイルの中に隠されています。 –