2017-01-25 18 views
0

Я пытаюсь сделать то, что выглядит простым, но явно не является - аутентифицироваться с помощью NTLM.ruby ​​httpclient & NTLM

пример в документации (http://www.rubydoc.info/gems/httpclient/2.1.5.2/HTTPClient) выглядит просто, но когда я пытаюсь это я всегда получаю 401.

Я создал простой веб-сайт в IIS whch требует NTLM. Я тестировал это в IE & хром.

Я тогда

require 'httpclient' 
require 'pp' 
require 'kconv' #seemed to be needed due to a bug.. 
require 'rubyntlm' # probably not needed directly? 

domain = 'http://qvcluster1/' 
url = 'http://qvcluster1/default.htm' 
user = 'testuser' 
password = 'testpassword' 
client = HTTPClient.new 
client.set_auth(nil ,user,password) 
r = client.get("http://qvcluster1/default.htm") 
pp r 

В моем понимании есть не намного больше к нему, но это не удается

это хвост конец того, что я получаю от последней строки:

@reason_phrase="Unauthorized", 
@request_absolute_uri=nil, 
@request_method="GET", 
@request_query=nil, 
@request_uri=#<URI::HTTP http://qvcluster1/default.htm>, 
@status_code=401>, 

Любые предложения приветствуются!

Как в стороне, я просто проверял с завитком и это работает отлично:

"C:\Program Files\cURL\bin\curl.exe" --ntlm -u testuser:testpassword http://qvcluster1/default.htm 
+0

NB: У меня есть пример, который поставляется с rubyntlm для работы, поэтому это явно проблема с моим кодом или HTTPClient –

ответ

0

ложная тревога - как оказалось, там были проблемы с веб-сервером обменивается данными с контроллером домена, так что бездельничал аутентификацию , Я удалил и снова добавил его в домен, и теперь все в порядке!