JRuby Savon Ntlm身份验证(在Ruby中工作但在JRuby中失败)

时间:2014-09-02 14:02:06

标签: ruby authentication jruby ntlm

我正在尝试使用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并且在我的代码中包含了相同的内容,但它仍然是炸弹。任何人都可以帮忙。

1 个答案:

答案 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)