Merge branch 'cs/http-use-basic-after-failed-negotiate'
When accessing a server with a URL like https://user:pass@site/, we did not to fall back to the basic authentication with the credential material embedded in the URL after the "Negotiate" authentication failed. Now we do. * cs/http-use-basic-after-failed-negotiate: remote-curl: fall back to basic auth if Negotiate fails
This commit is contained in:
15
http.c
15
http.c
@ -1650,17 +1650,18 @@ static int handle_curl_result(struct slot_results *results)
|
|||||||
} else if (missing_target(results))
|
} else if (missing_target(results))
|
||||||
return HTTP_MISSING_TARGET;
|
return HTTP_MISSING_TARGET;
|
||||||
else if (results->http_code == 401) {
|
else if (results->http_code == 401) {
|
||||||
|
#ifdef LIBCURL_CAN_HANDLE_AUTH_ANY
|
||||||
|
http_auth_methods &= ~CURLAUTH_GSSNEGOTIATE;
|
||||||
|
if (results->auth_avail) {
|
||||||
|
http_auth_methods &= results->auth_avail;
|
||||||
|
http_auth_methods_restricted = 1;
|
||||||
|
return HTTP_REAUTH;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (http_auth.username && http_auth.password) {
|
if (http_auth.username && http_auth.password) {
|
||||||
credential_reject(&http_auth);
|
credential_reject(&http_auth);
|
||||||
return HTTP_NOAUTH;
|
return HTTP_NOAUTH;
|
||||||
} else {
|
} else {
|
||||||
#ifdef LIBCURL_CAN_HANDLE_AUTH_ANY
|
|
||||||
http_auth_methods &= ~CURLAUTH_GSSNEGOTIATE;
|
|
||||||
if (results->auth_avail) {
|
|
||||||
http_auth_methods &= results->auth_avail;
|
|
||||||
http_auth_methods_restricted = 1;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return HTTP_REAUTH;
|
return HTTP_REAUTH;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user