Hi All,

Im not sure if this is a bug, or just "as implemented". But when cloning from a repo sitting on a web site that uses basic auth, the git client appears to forget its authentication info and ignores the 401's the server is sending back. It appears to initially login and get refs and HEAD ok, but after that it never authenticates again. Using a .netrc file this will work (or a url of the form http://user:pass@host though http://user@host wont), but i'm curious if theres a way of doing this without having to expose the password in some way?

Im using git 1.7.9.5 and when i clone i get the following:

$ git clone http://host/gitrepo/repo.git/
Cloning into 'repo'...
Username for 'http://host': user
Password for 'http://user@host':
error: The requested URL returned error: 401 (curl_result = 22, http_code = 401, sha1 = f7748ec924c30b4472132dabcf318d3c420a1a15) error: Unable to find f7748ec924c30b4472132dabcf318d3c420a1a15 under http://host/gitrepo/repo.git
Cannot obtain needed commit f7748ec924c30b4472132dabcf318d3c420a1a15
while processing commit 1283f0d8043b7aafc4edd1c4627d465a92355a49.
error: Fetch failed.

And on the server side, the logs show:
x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/info/refs?service=git-upload-pack HTTP/1.1" 401 708 "-" "git/1.7.9.5" x.x.x.x - user [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/info/refs?service=git-upload-pack HTTP/1.1" 200 406 "-" "git/1.7.9.5" x.x.x.x - user [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/HEAD HTTP/1.1" 200 233 "-" "git/1.7.9.5" x.x.x.x - user [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/12/83f0d8043b7aafc4edd1c4627d465a92355a49 HTTP/1.1" 200 415 "-" "git/1.7.9.5" x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/f7/748ec924c30b4472132dabcf318d3c420a1a15 HTTP/1.1" 401 708 "-" "git/1.7.9.5" x.x.x.x - user [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/c1/2f6404116fba31590dccad46b9dbb35de615a9 HTTP/1.1" 200 505 "-" "git/1.7.9.5" x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/f7/fc6c45d465000483425bfe5f8d52e561b5e376 HTTP/1.1" 401 708 "-" "git/1.7.9.5" x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/16/2cac064671b4058eab103d697c15f98da14d54 HTTP/1.1" 401 708 "-" "git/1.7.9.5" x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/af/63ba2c594c08f17d1114c1c1cdc6f48d561e59 HTTP/1.1" 401 708 "-" "git/1.7.9.5" x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/7e/2300a52c3dc9ecad58226c4f78f9d091e85a00 HTTP/1.1" 401 708 "-" "git/1.7.9.5" x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/c0/312c337c661aecf299a4a4f5378b1809bd2c44 HTTP/1.1" 401 708 "-" "git/1.7.9.5" x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/97/3e5550bd73275eea820a40067f9da5853c6e5d HTTP/1.1" 401 708 "-" "git/1.7.9.5" x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/info/packs HTTP/1.1" 401 708 "-" "git/1.7.9.5" x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/00/6b5267c3b2f11136aedd8b4698e4c22e6c341c HTTP/1.1" 401 708 "-" "git/1.7.9.5" x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/55/a5ba763c58c6fa196b97fa5f637198f8e56c07 HTTP/1.1" 401 708 "-" "git/1.7.9.5" x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/66/86a522a4f1d2fb93da34c676de85867fb3ab96 HTTP/1.1" 401 708 "-" "git/1.7.9.5" x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/info/http-alternates HTTP/1.1" 401 708 "-" "git/1.7.9.5" x.x.x.x - - [22/Sep/2012:09:03:21 +1000] "GET /gitrepo/repo.git/objects/info/alternates HTTP/1.1" 401 708 "-" "git/1.7.9.5"




--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to