git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git-http-backend: anonymous read, authenticated write

From
Jeff King <peff@peff.net>
Date
Apr 10, 2013, 21:53 UTC
Message-ID
<20130410215346.GB6215@sigill.intra.peff.net>
In-Reply-To
<20130410204544.GA2472@mteis.lan>
On Wed, Apr 10, 2013 at 10:45:44PM +0200, Magnus Therning wrote:
Show 15 quoted lines
> I was putting together a *long* response, with my different
> configurations when it suddenly hit me how to make it work.
> 
> So, this is the accesslog for a successful `git push`:
> 
> 192.168.1.84 tracsrv.local - [10/Apr/2013:22:24:59 +0200] "GET /git/foo.git/info/refs?service=git-receive-pack HTTP/1.1" 401 351 "-" "git/1.8.2.1"
> 192.168.1.84 tracsrv.local - [10/Apr/2013:22:24:59 +0200] "GET /git/foo.git/info/refs?service=git-receive-pack HTTP/1.1" 401 351 "-" "git/1.8.2.1"
> 192.168.1.84 tracsrv.local magnus [10/Apr/2013:22:25:04 +0200] "GET /git/foo.git/info/refs?service=git-receive-pack HTTP/1.1" 200 202 "-" "git/1.8.2.1"
> 192.168.1.84 tracsrv.local magnus [10/Apr/2013:22:25:09 +0200] "POST /git/foo.git/git-receive-pack HTTP/1.1" 200 73 "-" "git/1.8.2.1"
> 
> That is, *both* the GET and POST queries require a valid username
> (trying to push without a valid user will fail with a 403 already on
> the GET query).  Maybe Apache 2.x simply behaves *very* differently
> from lighttpd, but I still can't see how a rule to require a valid
> user only on the POST can ever work.

Right. But that is not configured at all by the apache config shown in the manpage:

               <LocationMatch "^/git/.*/git-receive-pack$">
                       AuthType Basic
                       AuthName "Git Access"
                       Require group committers
                       ...
               </LocationMatch>

which should not match on the info/refs request at all. That is why I suspect there is something else wrong in your lighttpd config, or something wrong in the conversion of the apache config to lighttpd.

Anyway, it sounds like you found a working config.
-Peff
Previous: Magnus TherningNext: Jakub Narębski
Message 6 of 23 in “git-http-backend: anonymous read, authenticated write”
  1. Magnus TherningApr 9, 2013
  2. Jakub NarębskiApr 9, 2013
  3. Magnus TherningApr 10, 2013
  4. Jeff KingApr 9, 2013
  5. Magnus TherningApr 10, 2013
  6. Jeff KingApr 10, 2013
  7. Jakub NarębskiApr 10, 2013
  8. Jeff KingApr 10, 2013
  9. Magnus TherningApr 10, 2013
  10. Jeff KingApr 11, 2013
  11. 0/2 http-backend documentation examplesJeff King, Apr 11, 2013
  12. 1/2 doc/http-backend: clarify "half-auth" repo configurationJeff King, Apr 11, 2013
  13. Magnus TherningApr 11, 2013
  14. 2/2 doc/http-backend: give some lighttpd config examplesJeff King, Apr 11, 2013
  15. Jakub NarębskiApr 11, 2013
  16. Jeff KingApr 11, 2013
  17. Jakub NarębskiApr 11, 2013
  18. 3/2 doc/http-backend: match query-string in apache half-auth exampleJeff King, Apr 13, 2013
  19. Jakub NarębskiApr 13, 2013
  20. Magnus TherningApr 11, 2013
  21. Jeff KingApr 11, 2013
  22. Magnus TherningApr 12, 2013
  23. Jakub NarębskiApr 11, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.