Comments (4)
I didn't know there was a feature to authenticate against non-proxy servers.
It would seem best to remove that code indeed. If there is any documentation hinting at authentication against non-proxy servers, it should be removed along with it.
from cntlm.
Indeed the original documentation claims that it supports transparent connection to ntlm authenticated servers:
Cntlm integrates TCP/IP port forwarding (HTTP tunneling), SOCKS5 proxy mode, standalone proxy allowing you to browse intranet as well as Internet and to access corporate web servers with NTLM protection.
So authentication against target servers is an advertised feature, and the original author tested a lot.
Cntlm has been tested against various ISA servers, WinGate, NetCache, Squid and Tinyproxy with and without NTLM auth.
I guess the issue is with POST requests, where you need to send the body request twice (the second time after you completed the authentication sequence). For sure it works with GET requests (without a body).
So for now I change the title of this issue. Let's see if there is a way to keep this feature and make it more robust (maybe disabling the authentication for POST requests).
from cntlm.
So for now I change the title of this issue. Let's see if there is a way to keep this feature and make it more robust (maybe disabling the authentication for POST requests).
It depends on the complexity of the code. HTTP without SSL is disappearing, so at some point this code would not really be used while it does contribute to the complexity of the program.
from cntlm.
Yes, a quick fix is to add a test that the request body is empty:
if (loop == 1 && data[1]->code == 401 && hlist_subcmp_all(data[1]->headers, "WWW-Authenticate", "NTLM") && !http_has_body(data[0], NULL)) {
In this case the feature is still working, and does not break with POST requests.
I agree that this requirement is obsolete, probably nowadays there are no more clients not able to deal with ntlm authentication, but since the code is there and a quick fix prevents it from breaking, I think for now we can keep it.
from cntlm.
Related Issues (20)
- http_parse_basic leaves password in memory when freeing buffer HOT 2
- CNTLM Crash with big NPM Project (Windows 10) HOT 12
- Misleading comments in cntlm.conf HOT 5
- Integration with osx keychain HOT 2
- Encountering SIGSEGV after on successful request (statically linked, libpacparser, ppc64le) HOT 5
- Hang/crash when after a *lot* of consecutive requests HOT 2
- PacFile truncated after 50 chars HOT 1
- Build fails on macOS HOT 3
- background mode + gss auth, cntlm crashes at the very first request HOT 2
- pacparser.c: pacparser_find_proxy: Pac parser is not initialized.
- Domain is cut off after 50 characters HOT 2
- The Cygwin version of cntlm fails pthread_join() HOT 3
- build cntlm.exe on linux ubuntu OS HOT 4
- Are the build binaries avialable? HOT 1
- Detailed logging and adding custom headers HOT 5
- BUG: invalid implementation of NTOWFv2 hashing HOT 4
- NoProxy waits indefinitely when server's 401 Unauthorized comes with a body
- cntlm crashed in sparc solaris 11 HOT 11
- Make direct failback if proxy is unavailable for a certain period of time HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cntlm.