You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Ximon Eighteen <xi...@int.greenpeace.org> on 2005/09/15 21:16:28 UTC
How do SVNPath and SVNParentPath for mod_authz_svn determine the
repository name?
Hi all,
Strange observation:
If my apache config has this:
<Location /viewcvs/viewcvs.py/ctk>
SVNPath /cluster_b/data/svn-repositories/ctk
AuthzSVNAccessFile /cluster_b/system/etc/svn/web_auth.conf
Include
/cluster_b/system/etc/httpd/conf/vhosts/svn-443/authorise_and_authenticate.inc
</Location>
The permissions controlling access will be determined by the [ctk:/] block in
my web_auth.conf file.
If I change SVNPath to this:
SVNParentPath /cluster_b/data/svn-repositories
all is still well.
However, if I do this:-
<Location ~ "/viewcvs/viewcvs.py/.+">
SVNParentPath /cluster_b/data/svn-repositories
The block that matches in web_auth.conf must now look like this:-
[viewcvs:/viewcvs.py/ctk]
Am I doing something wrong?
Is this a bug with mod_authz_svn?
Is this something I don't understand about how Location ~ (otherwise known as
LocationMatch) works?
This isn't stopping my doing anything, but does lead to a messier
configuration file. The reason is that I need /viewcvs/viewcvs.py/ to be
readable to all without an auth prompt and I can achieve this either the first
way or the third way, but the second way causes a prompt (as I'd expect) on
the top URL (/viewcvs/viewcvs.py/) when I only want prompts below that.
The first way I end up with multiple Location blocks for each
/viewcvs/viewcvs.py/repos, each using SVNPath. This works.
The third way I end up with a single Location ~ block but have to define my
permissions twice in my web_auth.conf file, once for the DAV access in
[repos:/] form, and once for ViewCVS access in [viewcvs:/viewcvs.py/repos] form.
Your thoughts appreciated!
Ximon
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Re: How do SVNPath and SVNParentPath for mod_authz_svn determine
the repository name?
Posted by Ximon Eighteen <xi...@int.greenpeace.org>.
Ximon Eighteen wrote:
> Hi all,
>
> Strange observation:
Neglected to say that I'm running SVN 1.2.1 and Apache 2.0.54.
I've been looking at the code in moz_authz_svn.c:req_check_access(). I can see
that dav_svn_split_uri() is asked to divide the URL into parts, one of which
is repos_name. Therefore in my case the result is not what I desire.
Is the result correct, just not what I expect?
If incorrect is it wrong because dav_svn_split_uri() does something wrong or
because in the LocationMatch case the uri req_check_access() receives from
Apache is different/wrong?
I can't touch the code and rebuild it unfortunately, at least not right now.
I've also looked at mod_dav_svn.c:dav_svn_split_uri() and it gets the
repos_name after stripping off the given root_path from the start of the uri.
Therefore I suppose the root_path could be wrong.
I tracked the root_path setting to
mod_authz_svn.c:create_authz_svn_dir_config() which just uses what it is given
by Apache. Perhaps in the case of LocationMatch it is given something different.
I'm attempting to make my own module for Apache 2 to do some tests with, maybe
I'll get there or maybe I'll fall asleep first ;-)
Ximon
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org