我正在尝试使用ntlm身份验证来使用Web服务。以下代码适用于Ruby
client = Savon.client(wsdl:"http://xxxxxxx/xxxxxxx/xxxxxx.asmx?WSDL",ntlm: ["user", "pass"])
response = client.call(:does_entry_id_exist, message: {
:server =>'xxxxxx',
:entryID =>'xxxxxx'
}).to_s
但是当我尝试在jRuby中执行它时,它会给我一个身份验证错误
Install the httpi-ntlm gem for experimental NTLM support
我已经安装了gem并且在我的代码中包含了相同的内容,但它仍然是炸弹。任何人都可以帮忙。
答案 0 :(得分:0)
我们遇到了类似的问题,不幸的是我遇到了JRuby 1.6.8。 我们不得不放弃Savon并使用: 使用httpi-ntlm的pyu-ntlm-http gem最终使NTLM身份验证工作:
https://rubygems.org/gems/pyu-ntlm-http
http://rubydoc.info/gems/pyu-ntlm-http/0.1.3.1/frames
request = HTTPI::Request.new
request.url = "http://WebserviceURL"
request.auth.ntlm "username","password"
request.headers["Content-Type"] = "text/xml; charset=UTF-8"
request.headers["SOAPAction"] = "action"
request.body = formatted_soap_body
response = HTTPI.post(request)