git-lfs/creds
brian m. carlson 124df9f038
Fall back from Negotiate to Basic
The Negotiate authentication scheme can support multiple different types
of authentication.  The two most popular are NTLM and Kerberos.  When we
supported NTLM, we'd first try Kerberos, and if it failed, fall back to
NTLM.

However, we no longer support NTLM, but some people still have server
configuration that uses NTLM via Negotiate.  For these people,
authentication may be broken.  Let's fall back to Basic in such a case
by keeping track of which authentication mechanisms we've tried,
keeping only the supported mechanisms if we got a response, and
stripping out failing mechanisms, falling back to Basic.

To help with servers that support both Negotiate and Basic, we
specifically consider SPNEGO (Negotiate) errors as authentication
errors.  This is because if the server supports Kerberos but the client
does not have a ticket, then we'll get an error trying to read the
client's tickets, which will manifest in this way.
2022-01-20 13:57:32 +00:00
..
access.go Fall back from Negotiate to Basic 2022-01-20 13:57:32 +00:00
creds_nix.go Update formatting for Go 1.17 2021-08-17 20:24:58 +02:00
creds_test.go Move credential handling to its own package 2018-09-24 15:09:22 +00:00
creds_windows.go Update formatting for Go 1.17 2021-08-17 20:24:58 +02:00
creds.go creds: make strings translatable 2022-01-18 17:05:02 +00:00
netrc_test.go netrc: consider same machine may have different login names 2021-11-04 17:31:37 +08:00
netrc.go netrc: consider same machine may have different login names 2021-11-04 17:31:37 +08:00