git/t/lib-httpd
brian m. carlson 37417b7717 t5563: refactor for multi-stage authentication
Some HTTP authentication schemes, such as NTLM- and Kerberos-based
options, require more than one round trip to authenticate.  Currently,
these can only be supported in libcurl, since Git does not have support
for this in the credential helper protocol.

However, in a future commit, we'll add support for this functionality
into the credential helper protocol and Git itself. Because we don't
really want to implement either NTLM or Kerberos, both of which are
complex protocols, we'll want to test this using a fake credential
authentication scheme.  In order to do so, update t5563 and its backend
to allow us to accept multiple sets of credentials and respond with
different behavior in each case.

Since we can now provide any number of possible status codes, provide a
non-specific reason phrase so we don't have to generate a more specific
one based on the response.  The reason phrase is mandatory according to
the status-line production in RFC 7230, but clients SHOULD ignore it,
and curl does (except to print it).

Each entry in the authorization and challenge fields contains an ID,
which indicates a corresponding credential and response.  If the
response is a 200 status, then we continue to execute git-http-backend.
Otherwise, we print the corresponding status and response.  If no ID is
matched, we use the default response with a status of 401.

Note that there is an implicit order to the parameters.  The ID is
always first and the creds or response value is always last, and
therefore may contain spaces, equals signs, or other arbitrary data.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-04-16 22:39:08 -07:00
..
apache.conf test-lib: set UBSAN_OPTIONS to match ASan 2023-09-21 14:10:36 -07:00
apply-one-time-perl.sh t/lib-httpd: pass PERL_PATH to CGI scripts 2023-04-06 09:29:43 -07:00
broken-smart-http.sh t/lib-httpd: use write_script to copy CGI scripts 2014-05-23 12:41:50 -07:00
error-no-report.sh send-pack: complain about "expecting report" with --helper-status 2021-10-18 13:26:52 -07:00
error-smart-http.sh t5551: test server-side ERR packet 2019-02-06 12:20:23 -08:00
error.sh http: fix charset detection of extract_content_type() 2014-06-17 15:25:00 -07:00
incomplete-body-upload-pack-v2-http.sh remote-curl: error on incomplete packet 2020-05-24 16:26:00 -07:00
incomplete-length-upload-pack-v2-http.sh remote-curl: error on incomplete packet 2020-05-24 16:26:00 -07:00
nph-custom-auth.sh t5563: refactor for multi-stage authentication 2024-04-16 22:39:08 -07:00
passwd t/lib-httpd: stop using legacy crypt(3) for authentication 2023-11-11 09:00:42 +09:00
proxy-passwd t/lib-httpd: stop using legacy crypt(3) for authentication 2023-11-11 09:00:42 +09:00
ssl.cnf t/lib-httpd: increase ssl key size to 2048 bits 2023-02-01 10:10:34 -08:00