0

これは少し難しいですが、WSS4CFの経験を持つ人が、私が何をしているのかを正確に知ってくれることを願っています。

リモートWebサービスにアクセスしようとしていますが、ユーザー名/パスワードを使用したWSSecurityが必要です。SOAP +<cfhttp>をいじってクラスの問題に遭遇した後、同僚はWSS4CFを見てみることを提案しました。これらの追加のjarファイルなどを処理する必要がないようにするために必要なもののように見えました。

提供された例はなく、cfc(ここに表示)は、引数を使用してメソッドを呼び出すだけのdotNetSOAPサービスのようなもので動作するように構成されているように見えることに気付きました。

<cfinvoke 
            webservice="https://service.gov.au/OrgService.svc?WSDL" 
            refreshwsdl="true"
            method="Search"
            returnvariable="aSearch">
                <cfinvokeargument name="request" value="#arguments.sXML#"/>
        </cfinvoke>

WSS4CFは、最初に安全なWebサービスを作成し、次にその安全な環境内で要求を行うことによって機能します。上記のコードを試しましたが、機能しません(期待していませんでした)。サービスは、引数を使用したメソッド呼び出しではなく、xmlパケットを予期しています。

それをいじるのではなく、cfhttpで動作するように構成する必要があります。ここで、cfhttpparamでxmlエンベロープを渡します(例:次のように)。

<cfhttp
    url="/service.gov.au/OrgService.svc?WSDL"
    method="post">

    <cfhttpparam type="header" name="content-type" value="application/soap+xml" /><!---text/xml--->
    <cfhttpparam type="header" name="SOAPAction" value="http://service.gov.au/services/IOrgService/Search"/>
    <cfhttpparam type="header" name="accept-encoding" value="no-compression" />
    <cfhttpparam type="xml" value="#trim(sXML)#"/>

</cfhttp> 

これを行うための助けをいただければ幸いです。興味がない限り、図書館を研究することは期待していません。WSS4CFで働いていた誰かがいくつかのインスピレーションを提供できることをもっと望んでいます。

4

1 に答える 1

0

WS-Security 自体は使用していませんが、ここでの回答は、メッセージ ヘッダーで WS-Security パケットを送信できると仮定して、目的を達成するのに役立つ場合があります (wikipedia では、送信できることが保証されています)。そのアプローチでは、cfinvoke を使用しますが、ヘッダーを追加します。この場合、ヘッダーは ws-security ヘッダーになります。ヘッダーを自分で組み立てる必要がありますが、それは可能だと思います

于 2012-08-07T08:50:01.493 に答える