yermej wrote:
>> There are examples included in the rubyntlm gem. I'm running Windows
>> so they're in C:\ruby\lib\ruby\gems\1.8\gems\rubyntlm-0.1.1\examples\.
>> YMMV.
>>     
I'm really trying to do this in httpclient versus getting down into 
rubyntlm which shouldn't be necessary. I took another look at the 
httpclient.rb source and found what I was looking for on the get method 
which allows an extheader hash to be passed with arguments. Now I feel I 
am real close but I am still getting a 401 error. The script is now 
looking like:

#!c:/ruby/bin/ruby.exe
CERT_FILE = "c:/certs/jim_nopw2.pem"
CA_CERT = "c:/ca_certs/servers_ca.cer"

require 'rubygems'
require 'httpclient'  # using v2.1.2 and rubyntlm 0.1.1 installed

client = HTTPClient.new
client.ssl_config.set_trust_ca(CA_CERT)
client.ssl_config.set_client_cert_file(CERT_FILE, CERT_FILE)

resp = client.get("https://some_website.com/default1.asp"), nil, 
{'username' => 'DOMAIN\username', 'password' => 'password'})
puts resp.content
puts resp.status

When I look at resp.content in my debugger, I see that the @header_item 
array has the normal info (content type, content length, server, etc.) 
and also has ["WWW-Authenticate", "Negotiate"] and the second 
["WWW-Authenticate", "NTLM"]. When I trace through the get method, I see 
that @negotiate_auth has a hash @auth which == {} and @auth_default 
which == null. I guess if I can figure out how to populate these 
correctly then I'm probably good to go.

This will have to wait until tomorrow or Sunday night and a few more 
drinks. However, I'll send another S.O.S. that if someone has already 
figured this out and can show me a good code snippet, I'd be more than 
willing to share a few drinks (if you are around Seattle) or offer high 
praise and many thanks from afar. :-)

-Jim