Giter VIP home page Giter VIP logo

requests-ntlm2's People

Contributors

alanxz avatar btoews avatar carsonyl avatar davidfischer avatar dopstar avatar ebnull avatar ecederstrand avatar exvito avatar f30 avatar glisha avatar hickford avatar jborean93 avatar jkugler avatar keith-gray-powereng avatar lukasa avatar mastahyeti avatar nitzmahone avatar oliparcol avatar rekcahpassyla avatar sigmavirus24 avatar t-8ch avatar waldyrious avatar zitrax avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

requests-ntlm2's Issues

requests-ntlm2 breaks when parsing the response body during proxy tunnelling

Traceback

   File '/usr/local/cape/farshot/venv/lib/python3.7/site-packages/requests/sessions.py', line 587, in request
     resp = self.send(prep, **send_kwargs)
   File '/usr/local/cape/farshot/venv/lib/python3.7/site-packages/requests/sessions.py', line 701, in send
     r = adapter.send(request, **kwargs)
   File '/usr/local/cape/farshot/venv/lib/python3.7/site-packages/requests/adapters.py', line 499, in send
     timeout=timeout,
   File '/usr/local/cape/farshot/venv/lib/python3.7/site-packages/urllib3/connectionpool.py', line 700, in urlopen
     self._prepare_proxy(conn)
   File '/usr/local/cape/farshot/venv/lib/python3.7/site-packages/urllib3/connectionpool.py', line 996, in _prepare_proxy
     conn.connect()
   File '/usr/local/cape/farshot/venv/lib/python3.7/site-packages/urllib3/connection.py', line 369, in connect
     self._tunnel()
   File '/usr/local/cape/farshot/venv/lib/python3.7/site-packages/requests_ntlm2/connection.py', line 218, in _tunnel
     body_length += len(line)
 TypeError: object of type 'NoneType' has no len()

Save password hash

Is there a way to put an md5 (password) or similar, to be able to save the key safely

AttributeError

File "/data/miniconda3/lib/python3.7/site-packages/requests_ntlm2/connection.py", line 45, in _get_header_bytes
http_connect_string = b"CONNECT {}:{} HTTP/1.0\r\n".format(host, port)

AttributeError: 'bytes' object has no attribute 'format'

failure through proxy with NTLM authentication

I'm stumbled on this and it looks promising. However, I'm encountering an issue causing a traceback.

pip install requests-ntlm2
pip freeze
certifi==2019.11.28
cffi==1.13.2
chardet==3.0.4
cryptography==2.8
idna==2.8
ntlm-auth==1.4.0
pycparser==2.19
requests==2.22.0
requests-ntlm2==6.0.10
six==1.14.0
urllib3==1.25.8

test.py

import urllib3
import requests
from requests_ntlm2 import HttpNtlmAdapter, HttpNtlmAuth

proxy = {
    'proxies': {
        'http': 'http://proxy.domain.com:8080',
        'https': 'http://proxy.domain.com:8080',
    },
    'auth': {
        'method': 'ntlm',
        'user': r'domain\user',
        'pass': 'ntlm_password'
    }
}

# random https site that doesn't need any auth
test_site = 'https://'


proxy_credential = proxy['auth']
proxy_user = proxy_credential['user']
proxy_password = proxy_credential['pass']
proxy_auth = HttpNtlmAuth(proxy_user, proxy_password)
proxy_adapter = HttpNtlmAdapter(proxy_user, proxy_password)

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

session = requests.Session()
session.proxies = proxy['proxies']
session.mount('https://', proxy_adapter)
session.mount('http://', proxy_adapter)
session.auth = proxy_auth


get_website = session.get(
    test_site,
    verify=False,
    timeout=(15, 30),
)

print(get_website)

$ python test.py Traceback (most recent call last): File "test.py", line 50, in <module> timeout=(15, 30), File "/projects/code/python/test-ntlm-proxy/lib/python3.7/site-packages/requests/sessions.py", line 546, in get return self.request('GET', url, **kwargs) File "/projects/code/python/test-ntlm-proxy/lib/python3.7/site-packages/requests/sessions.py", line 533, in request resp = self.send(prep, **send_kwargs) File "/projects/code/python/test-ntlm-proxy/lib/python3.7/site-packages/requests/sessions.py", line 646, in send r = adapter.send(request, **kwargs) File "/projects/code/python/test-ntlm-proxy/lib/python3.7/site-packages/requests/adapters.py", line 449, in send timeout=timeout File "/projects/code/python/test-ntlm-proxy/lib/python3.7/site-packages/urllib3/connectionpool.py", line 662, in urlopen self._prepare_proxy(conn) File "/projects/code/python/test-ntlm-proxy/lib/python3.7/site-packages/urllib3/connectionpool.py", line 948, in _prepare_proxy conn.connect() File "/projects/code/python/test-ntlm-proxy/lib/python3.7/site-packages/urllib3/connection.py", line 308, in connect self._tunnel() File "/projects/code/python/test-ntlm-proxy/lib/python3.7/site-packages/requests_ntlm2/connection.py", line 145, in _tunnel if line.lower().startswith("{}:".format(header)): TypeError: startswith first arg must be bytes or a tuple of bytes, not str

Any help you can provide is greatly appreciated

BadStatusLine exception when using an NTLM Squid proxy

Issue description

Hello there. I'm trying to test the HTTP CONNECT Usage example in the Readme section and it's failing with a BadStatusLine exception.
I believe this particular error might arise only when using Squid with NTLM Auth, because of how this proxy crafts the responses.

This might be related to #14 but no way to know because the proxy used for testing is not specified there.

Environment

Python 3.8 virtualenv with the following

Dependencies
certifi==2020.6.20
cffi==1.14.3
chardet==3.0.4
cryptography==3.1.1
idna==2.10
ntlm-auth==1.5.0
pycparser==2.20
requests==2.24.0
requests-ntlm2==6.2.7
six==1.15.0
urllib3==1.25.11

Going through a Squid 3.5.20 proxy with NTLMv2 auth.

Steps to reproduce the issue

  1. Copy the code from here to a ntlm_proxy.py file.
  2. Fill the missing connectivity and credentials fields and set a real url (github.com in my case) in the get call.
  3. Run python ntlm_proxy.py using the python3.8 virtualenv.

What's the expected result?

The script should not fail. We should be able to see the response from the requested page with it's content.

What's the actual result?

A BadStatusLine exception is raised when trying to interpret the status of the second response of the Squid Proxy.

The exception trace
Traceback (most recent call last):
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/urllib3/connectionpool.py", line 667, in urlopen
    self._prepare_proxy(conn)
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/urllib3/connectionpool.py", line 932, in _prepare_proxy
    conn.connect()
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/urllib3/connection.py", line 317, in connect
    self._tunnel()
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/requests_ntlm2/connection.py", line 166, in _tunnel
    version, code, message, response = self._get_response()
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/requests_ntlm2/connection.py", line 85, in _get_response
    version, code, message = response._read_status()
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/http/client.py", line 289, in _read_status
    raise BadStatusLine(line)
http.client.BadStatusLine: icense


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/urllib3/connectionpool.py", line 726, in urlopen
    retries = retries.increment(
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/urllib3/util/retry.py", line 410, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/urllib3/packages/six.py", line 734, in reraise
    raise value.with_traceback(tb)
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/urllib3/connectionpool.py", line 667, in urlopen
    self._prepare_proxy(conn)
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/urllib3/connectionpool.py", line 932, in _prepare_proxy
    conn.connect()
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/urllib3/connection.py", line 317, in connect
    self._tunnel()
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/requests_ntlm2/connection.py", line 166, in _tunnel
    version, code, message, response = self._get_response()
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/requests_ntlm2/connection.py", line 85, in _get_response
    version, code, message = response._read_status()
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/http/client.py", line 289, in _read_status
    raise BadStatusLine(line)
urllib3.exceptions.ProtocolError: ('Connection aborted.', BadStatusLine('icense\n'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "python_ntlm_auth.py", line 51, in <module>
    response = ntlm_request()
  File "python_ntlm_auth.py", line 46, in ntlm_request
    response = session.get('https://github.com', proxies=proxies)
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/requests/sessions.py", line 543, in get
    return self.request('GET', url, **kwargs)
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/requests/sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/requests/sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "/opt/miniconda3/envs/ntlmproxy3.8/lib/python3.8/site-packages/requests/adapters.py", line 498, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine('icense\n'))

Additional details / screenshot

Using wireshark and debugging I realized the issue was related to Squid sending an HTML page in the 407 Proxy Authentication Required which splitted the request into multiple tcp packages. In addition, before this HTML page Squid is sending a blank line (\r\n) which is interpreted as the end of the request here.
This two things (multiple TCP packages over the same socket and the blank line mid request) lead to the failure here because a header line is expected but garbage from the previous request is read instead.

I was able to fix this issue interpreting two consecutive new lines or empty lines as the requests actually finishing. I will create a PR with that so We can work from there.

Thanks!

requests-ntlm2 should not rely on six.py in urllib3

requests-ntlm2 relies on an embedded copy of six.py being in urllib3. However, Debian/Ubuntu (and maybe others) remove this package, and modify urllib3 to use the system six installation. This causes an error when trying to use requests-ntlm2:

$ python3 -c 'from requests_ntlm2 import HttpNtlmAuth'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python3.8/dist-packages/requests_ntlm2/__init__.py", line 1, in <module>
    from .adapters import HttpNtlmAdapter, HttpProxyAdapter
  File "/usr/local/lib/python3.8/dist-packages/requests_ntlm2/adapters.py", line 10, in <module>
    from .connection import HTTPConnection as _HTTPConnection
  File "/usr/local/lib/python3.8/dist-packages/requests_ntlm2/connection.py", line 9, in <module>
    from requests.packages.urllib3.packages.six.moves.http_client import (
ModuleNotFoundError: No module named 'requests.packages.urllib3.packages.six'

Instead, I propose adding six to the requirements in setup.py, and import that instead.

use md5 over md4

Openssl3 breaks the md4 hashing, is there a way to specify using md5?

not able to connect to https url

Hello, I am trying to connect to a https url via a squid proxy which is enabled for NTLM authentication. But it is throwing error.

from requests_ntlm2 import HttpNtlmAuth, NtlmCompatibility, HttpNtlmAdapter
import requests
import logging

logging.basicConfig(level=logging.DEBUG)

session = requests.Session()
proxi = {"https": 'http://{}:{}'.format('ip', 8080)}

ntlm_compatibility = NtlmCompatibility.NTLMv2_DEFAULT 

session.mount(
    'https://',
    HttpNtlmAdapter(
        "domain\\Administrator",
        "pwd",
        ntlm_compatibility=ntlm_compatibility
    )
)

session.auth = HttpNtlmAuth(
    "domain\\Administrator",
    "pwd",
    ntlm_compatibility=ntlm_compatibility
)

session.proxies = proxi

response = session.get('https://github.com')
print(response)

Output:

DEBUG:requests_ntlm2.adapters:proxy headers: {}
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): github.com:443
DEBUG:requests_ntlm2.connection:attempting to open tunnel using HTTP CONNECT
DEBUG:requests_ntlm2.connection:username: Administrator, domain: domain
DEBUG:requests_ntlm2.connection:workstation: workstation
DEBUG:requests_ntlm2.connection:> 'CONNECT github.com:443 HTTP/1.0\r\n'
DEBUG:requests_ntlm2.connection:> 'Host: github.com:443\r\n'
DEBUG:requests_ntlm2.connection:> 'Proxy-Authorization: NTLM TlRMTVNTUAABAAAAMbCI4g4ADgAoAAAADwAPADYAAAAGAbEdAAAAD2F1dGhtaW5kLmxvY2FsRUMyQU1BWi1BMkJLNjBH\r\n'
DEBUG:requests_ntlm2.connection:> 'Proxy-Connection: Keep-Alive\r\n'
DEBUG:requests_ntlm2.connection:< 'HTTP/1.1 407 Proxy Authentication Required\r\n'
INFO:requests_ntlm2.connection:< b'Content-Type: text/html; charset=utf-8\r\n'
INFO:requests_ntlm2.connection:< b'Content-Length: 6585\r\n'
INFO:requests_ntlm2.connection:< b'Connection: close\r\n'
INFO:requests_ntlm2.connection:< b'Proxy-Authenticate: Negotiate\r\n'
DEBUG:requests_ntlm2.connection:> 'CONNECT github.com:443 HTTP/1.0\r\n'
DEBUG:requests_ntlm2.connection:> 'Host: github.com:443\r\n'
DEBUG:requests_ntlm2.connection:> 'Proxy-Authorization: NTLM TlRMTVNTUAABAAAAMbCI4g4ADgAoAAAADwAPADYAAAAGAbEdAAAAD2F1dGhtaW5kLmxvY2FsRUMyQU1BWi1BMkJLNjBH\r\n'
DEBUG:requests_ntlm2.connection:> 'Proxy-Connection: Keep-Alive\r\n'
Traceback (most recent call last):
  File "\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\connectionpool.py", line 700, in urlopen
    self._prepare_proxy(conn)
  File "\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\connectionpool.py", line 994, in _prepare_proxy
    conn.connect()
  File "\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\connection.py", line 369, in connect
    self._tunnel()
  File "\AppData\Local\Programs\Python\Python38\lib\site-packages\requests_ntlm2\connection.py", line 226, in _tunnel
    version, code, message, response = self._get_response()
  File "\AppData\Local\Programs\Python\Python38\lib\site-packages\requests_ntlm2\connection.py", line 129, in _get_response
    version, code, message = response._read_status()
  File "\AppData\Local\Programs\Python\Python38\lib\http\client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "\AppData\Local\Programs\Python\Python38\lib\socket.py", line 669, in readinto
    return self._sock.recv_into(b)
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "\AppData\Local\Programs\Python\Python38\lib\site-packages\requests\adapters.py", line 439, in send
    resp = conn.urlopen(
  File "\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\connectionpool.py", line 785, in urlopen
    retries = retries.increment(
  File "\AppData\Local\Programs\Python\Python38\lib\site-packages\urllib3\util\retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='github.com', port=443): Max retries exceeded with url: / (Caused by ProxyError('Cannot connect to proxy.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "ntlm_https.py", line 30, in <module>
    response = session.get('https://github.com')
  File "\AppData\Local\Programs\Python\Python38\lib\site-packages\requests\sessions.py", line 555, in get
    return self.request('GET', url, **kwargs)
  File "\AppData\Local\Programs\Python\Python38\lib\site-packages\requests\sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "\AppData\Local\Programs\Python\Python38\lib\site-packages\requests\sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
  File "\AppData\Local\Programs\Python\Python38\lib\site-packages\requests\adapters.py", line 510, in send
    raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host='github.com', port=443): Max retries exceeded with url: / (Caused by ProxyError('Cannot connect to proxy.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)))

what am I missing. I am able to work with http urls.

Publish wheel to PyPI

At the moment only the source tarball is published to PyPI but it would be nice if a wheel was also published.

proxy tunnel fail with ntlm version above 1

Hi, i have the following code:

from requests_ntlm2 import HttpNtlmAuth, NtlmCompatibility, HttpNtlmAdapter
import requests
import logging

logging.basicConfig(level=logging.DEBUG)


session = requests.Session()
proxi = {"https": 'http://{}:{}'.format('10.10.11.25', 8080)}



ntlm_compatibility = NtlmCompatibility.NTLMv2_DEFAULT 




session.mount(
    'https://',
    HttpNtlmAdapter(
        "WINGATE\\usr",
        "pwd",
        ntlm_compatibility=ntlm_compatibility
    )
)


session.auth = HttpNtlmAuth(
    "WINGATE\\usr",
    "pwd",
    ntlm_compatibility=ntlm_compatibility
)

session.proxies = proxi

session.post("https://site.url")

when i try this code with our internal WINGATE with ntml v1 and v2 enabled with ntlm compatibility version "NtlmCompatibility.LM_AND_NTLMv1_WITH_ESS" all work very good,
but when i use ntlm compatibility "NtlmCompatibility.NTLMv2_DEFAULT" or above nothing work and i receive the following errors:


DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): webhook.site:443
DEBUG:requests_ntlm2.connection:attempting to open tunnel using HTTP CONNECT
DEBUG:requests_ntlm2.connection:username: usr, domain: WINGATE
DEBUG:requests_ntlm2.connection:> 'CONNECT webhook.site:443 HTTP/1.0\r\n'
DEBUG:requests_ntlm2.connection:> 'Host: webhook.site:443\r\n'
DEBUG:requests_ntlm2.connection:> 'Proxy-Authorization: NTLM TlRMTVNTUAABAAAAMpCI4gcABwAoAAAAAAAAAC8AAAAGAbEdAAAAD1dJTkdBVEU=\r\n'
DEBUG:requests_ntlm2.connection:> 'Proxy-Connection: Keep-Alive\r\n'
DEBUG:requests_ntlm2.connection:< 'HTTP/1.1 407 Proxy authorization required\r\n'
INFO:requests_ntlm2.connection:< b'Proxy-Authenticate: NTLM\r\n'
INFO:requests_ntlm2.connection:< b'Proxy-Support: session-based-authentication\r\n'
INFO:requests_ntlm2.connection:< b'Cache-control: no-store, no-cache\r\n'
INFO:requests_ntlm2.connection:< b'Content-Type: text/html; charset=utf-8\r\n'
INFO:requests_ntlm2.connection:< b'Content-Length: 855\r\n'
INFO:requests_ntlm2.connection:< b'Date: Thu, 23 Apr 2020 08:25:53 GMT\r\n'
INFO:requests_ntlm2.connection:< b'Server: WinGate Engine\r\n'
INFO:requests_ntlm2.connection:< b'Proxy-Connection: Keep-Alive\r\n'
DEBUG:requests_ntlm2.connection:> 'CONNECT webhook.site:443 HTTP/1.0\r\n'
DEBUG:requests_ntlm2.connection:> 'Host: webhook.site:443\r\n'
DEBUG:requests_ntlm2.connection:> 'Proxy-Authorization: NTLM TlRMTVNTUAABAAAAMpCI4gcABwAoAAAAAAAAAC8AAAAGAbEdAAAAD1dJTkdBVEU=\r\n'
DEBUG:requests_ntlm2.connection:> 'Proxy-Connection: Keep-Alive\r\n'
DEBUG:requests_ntlm2.connection:< 'HTTP/1.1 407 Proxy authorization required\r\n'
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 662, in urlopen
    self._prepare_proxy(conn)
  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 948, in _prepare_proxy
    conn.connect()
  File "/usr/local/lib/python3.6/site-packages/urllib3/connection.py", line 308, in connect
    self._tunnel()
  File "/usr/local/lib/python3.6/site-packages/requests_ntlm2/connection.py", line 172, in _tunnel
    "Tunnel connection failed: %d %s" % (code, message.strip())
OSError: Tunnel connection failed: 407 Proxy authorization required

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/local/lib/python3.6/site-packages/urllib3/connectionpool.py", line 720, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "/usr/local/lib/python3.6/site-packages/urllib3/util/retry.py", line 436, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='site.url', port=443): Max retries exceeded with url: /3d235031-9605-4710-b891-95e099057008 (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy authorization required',)))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "2.py", line 38, in <module>
    session.post("https://webhook.site/3d235031-9605-4710-b891-95e099057008")
  File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 578, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.6/site-packages/requests/sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/requests/adapters.py", line 510, in send
    raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host='site.url', port=443): Max retries exceeded with url: /3d235031-9605-4710-b891-95e099057008 (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy authorization required',)))

could you please suggest me on what this error can depends ?

Switch to pyspnego instead of ntlm-auth.

ntlm-auth has been deprecated in favour of using pyspnego (same author, newer library), which has actually had updates in the last month (as opposed to the last commit being 3 years ago in ntlm-auth). I'd rather not start a new project that uses a deprecated library for security in an enterprise context. Any chance this library will be updated to use it?

DLL load failed while importing _openssl: The specific module could not be found

Getting this issue when trying to do a Windows authentication on the windows machine which has openssl in the custom miniconda environment(not in base miniconda environement )
"DLL load failed while importing _openssl: The specific module could not be found"

is there a way to bundle pyopenssl alongwith requests-ntlm2 ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.