2012-05-08 4 views
3

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エンベロープが署名するために得ることができますか?この発見

答えて

0

は、誰も私にお勧めまたはAxisフレームワーク内のデジタル 署名をSOAPリクエストに署名する 簡単な、簡単な方法を説明しているどこかに私を指すことができますか?

「WSS4Jプロジェクトを見てください。彼らは、署名のためのAxisハンドラを提供し、それはWSセキュリティに記載されているように暗号化します。」

http://mail-archives.apache.org/mod_mbox/axis-java-user/200403.mbox/%[email protected]%3E -

その助けをしていますか?

+0

私はWSS4Jフレームワークを使用したいと思いますが、Soap Request XMLにはアクセスできません。そのすべては、私のために生成された "pm_SingleDecrypt"プロキシコードファイルの中に隠されています。 –

2

This JavaRanch Threadでは、Axisハンドラを使用してWSS4Jでセキュリティと暗号化を実装する方法について説明しています。

あなたは多くのことをしなければならないように見えます:

  1. 設定は/ WSDD
  2. はパスワードのコールバッククラスを書く
  3. あなたのWSDDファイルを指すEngineConfigurationとWebサービスを呼び出す書きます
  4. crypto.propertiesファイルを作成します。
  5. crypto.propertiesファイルと証明書を含むキーストアがアプリのクラスパスにあることを確認します。

JavaRanchフォーラムでPropsがJohnRarchフォーラムに参加しました。

突然、尻の痛み。 Axisプロキシクラスから基になるSOAPメッセージ自体を取得する方法がある場合は、それを行うより速い方法かもしれませんが、Axis 1には多くの経験はありません。

こんにちは/ r/Java、ところで!

関連する問題