Skip to content

Fails on missing content-length #53

@mikeyg123

Description

@mikeyg123

I'm trying to do a simple get request but I get the TypeError below:

import urllib2
from ntlm import HTTPNtlmAuthHandler

pm = urllib2.HTTPPasswordMgrWithDefaultRealm()
pm.add_password(None, url, 'DOMAIN\\user', 'pw')
auth = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(pm)
op = urllib2.build_opener(auth)
urllib2.install_opener(op)

url = "http://server/path"
response = urllib2.urlopen(url)

Traceback (most recent call last):
  File "/bin/python2.7/lib/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "/bin/python2.7/lib/python2.7/urllib2.py", line 435, in open
    response = meth(req, response)
  File "/bin/python2.7/lib/python2.7/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "/bin/python2.7/lib/python2.7/urllib2.py", line 467, in error
    result = self._call_chain(*args)
  File "/bin/python2.7/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/lib/python2.7/site-packages/ntlm/HTTPNtlmAuthHandler.py", line 121, in http_error_401
    return self.http_error_authentication_required('www-authenticate', req, fp, headers)
  File "/lib/python2.7/site-packages/ntlm/HTTPNtlmAuthHandler.py", line 44, in http_error_authentication_required
    return self.retry_using_http_NTLM_auth(req, auth_header_field, None, headers)
  File "/lib/python2.7/site-packages/ntlm/HTTPNtlmAuthHandler.py", line 81, in retry_using_http_NTLM_auth
    r._safe_read(int(r.getheader('content-length')))
TypeError: int() argument must be a string or a number, not 'NoneType'

The same url works with chrome and ie. (Using the Requests library gets further through the handshake but it doesn't provide the correct response to the challenge.)

Fairly obvious that the server is not returning a content length - but is there any way around this? Why does the HTTPNtlmAuthHandler rely on this header?
Thanks
MikeG

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions