私が使用しているC#サービスエンドポイントへの作業中のミュールがあります。Mule ESBのWindows資格情報を使用するCXFエンドポイント
サービスはWCF/C#でホストされています - muleはapache cxf(Wsdl2java)によって生成されたクラスのセットを使用してそのサービスにクライアントをオープンしています。 しかし、これまで私が使っていたのはサービス上のbasichttpbindingです。つまり、セキュリティ/資格情報の検証はありません。
今、私はそれを変更したいと思います。私は、WSHttpBindingにc#サービスのバインディングを設定したいと思います。
NTLM資格情報を使用してC#サービスを使用する方法はありますか? ApacheのCXFのドキュメントから
<cxf:jaxws-client serviceClass="com.TimeLineListener.IBusListeningService"
operation="getMessage" />
<outbound-endpoint address="${TMSService.host}"
exchange-pattern="one-way" />
:
現在のエンドポイントは次のように定義されて
NTLM認証そう
//Set the jcifs properties
jcifs.Config.setProperty("jcifs.smb.client.domain", "ben.com");
jcifs.Config.setProperty("jcifs.netbios.wins", "xxx.xxx.xxx.xxx");
jcifs.Config.setProperty("jcifs.smb.client.soTimeout", "300000"); //5
minutes
jcifs.Config.setProperty("jcifs.netbios.cachePolicy", "1200"); //20 minutes
//jcifs.Config.setProperty("jcifs.smb.client.username", "myNTLogin");
//jcifs.Config.setProperty("jcifs.smb.client.password", "secret");
//Register the jcifs URL handler to enable NTLM
jcifs.Config.registerSmbURLHandler();
Finally, you need to setup the CXF client to turn off chunking. The reason is that the NTLM authentication requires a 3 part handshake which breaks the streaming.
//Turn off chunking so that NTLM can occur
Client client = ClientProxy.getClient(port);
HTTPConduit http = (HTTPConduit) client.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(36000);
httpClientPolicy.setAllowChunking(false);
http.setClient(httpClientPolicy);
、どのように私は、XMLの上記でこれらの項目を定義することができます?そのような例は見当たりませんでした....
セキュリティーなしで接続をセットアップしようとしても、addtionaly(セキュリティーなしのWSHttpBinding =なし) - コンテンツタイプが一致しないようにするapplication/xmlで、それはtext/xmlなどのようなものです)
これをどうやって行うのか、私は本当にいくつかの例が好きです。
ありがとうございました!
この記事をお読みください? http://cxf.apache.org/docs/client-http-transport-including-ssl-support.html#ClientHTTPTransport%28includingSSLsupport%29-NTLMAuthentication –
私は一見を持っていましたが、実装方法はまだまだありません。 ) – Menyh