curl/tests/data/test2078
Marin Hannache 67e9e3cb1e
http: do not require a user name when using CURLAUTH_NEGOTIATE
In order to get Negotiate (SPNEGO) authentication to work in HTTP you
used to be required to provide a (fake) user name (this concerned both
curl and the lib) because the code wrongly only considered
authentication if there was a user name provided, as in:

  curl -u : --negotiate https://example.com/

This commit leverages the `struct auth` want member to figure out if the
user enabled CURLAUTH_NEGOTIATE, effectively removing the requirement of
setting a user name both in curl and the lib.

Signed-off-by: Marin Hannache <git@mareo.fr>
Reported-by: Enrico Scholz
Fixes https://sourceforge.net/p/curl/bugs/440/
Fixes #1161
Closes #9047
2023-08-14 10:21:46 +02:00

53 lines
756 B
Plaintext

<testcase>
<info>
<keywords>
HTTP
HTTP GET
GSS-API
</keywords>
</info>
# Server-side
<reply>
<data>
HTTP/1.1 200 OK swsclose
Content-Length: 23
This IS the real page!
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<features>
GSS-API
</features>
<name>
curl --negotiate should not send empty POST request only
</name>
<command>
http://%HOSTIP:%HTTPPORT/%TESTNUMBER --negotiate --data name=value
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<errorcode>
0
</errorcode>
<protocol nonewline="yes">
POST /%TESTNUMBER HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
Content-Length: 10
Content-Type: application/x-www-form-urlencoded
name=value
</protocol>
</verify>
</testcase>