diff options
author | Jeff King <peff@peff.net> | 2012-08-27 09:25:21 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-08-27 10:49:09 -0700 |
commit | 666aae9aed5a29019d2cd696d4258750c0dc96c7 (patch) | |
tree | 94dccbc1fb5afa8d72ca8d1c9bf3b576bd17a924 | |
parent | 05b577107dda131d46f93aa9bb7817c80bc30ee9 (diff) | |
download | git-666aae9aed5a29019d2cd696d4258750c0dc96c7.tar.gz git-666aae9aed5a29019d2cd696d4258750c0dc96c7.tar.xz |
t/lib-httpd: recognize */smart/* repos as smart-http
We do not currently test authentication for smart-http repos
at all. Part of the infrastructure to do this is recognizing
that auth/smart is indeed a smart-http repo.
The current apache config recognizes only "^/smart/*" as
smart-http. Let's instead treat anything with /smart/ in the
URL as smart-http. This is obviously a stupid thing to do
for a real production site, but for our test suite we know
that our repositories will not have this magic string in the
name.
Note that we will route /foo/smart/bar.git directly to
git-http-backend/bar.git; in other words, everything before
the "/smart/" is irrelevant to finding the repo on disk (but
may impact apache config, for example by triggering auth
checks).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | t/lib-httpd/apache.conf | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/t/lib-httpd/apache.conf b/t/lib-httpd/apache.conf index b183e3513..616486f9e 100644 --- a/t/lib-httpd/apache.conf +++ b/t/lib-httpd/apache.conf @@ -45,22 +45,20 @@ ErrorLog error.log Alias /dumb/ www/ Alias /auth/dumb/ www/auth/dumb/ -<Location /smart/> +<LocationMatch /smart/> SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} SetEnv GIT_HTTP_EXPORT_ALL -</Location> -<Location /smart_noexport/> +</LocationMatch> +<LocationMatch /smart_noexport/> SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} -</Location> -<Location /smart_custom_env/> +</LocationMatch> +<LocationMatch /smart_custom_env/> SetEnv GIT_EXEC_PATH ${GIT_EXEC_PATH} SetEnv GIT_HTTP_EXPORT_ALL SetEnv GIT_COMMITTER_NAME "Custom User" SetEnv GIT_COMMITTER_EMAIL custom@example.com -</Location> -ScriptAlias /smart/ ${GIT_EXEC_PATH}/git-http-backend/ -ScriptAlias /smart_noexport/ ${GIT_EXEC_PATH}/git-http-backend/ -ScriptAlias /smart_custom_env/ ${GIT_EXEC_PATH}/git-http-backend/ +</LocationMatch> +ScriptAliasMatch /smart_*[^/]*/(.*) ${GIT_EXEC_PATH}/git-http-backend/$1 <Directory ${GIT_EXEC_PATH}> Options None </Directory> |