2

This is more of a question related to how Apache handles variables and the SetEnvIf directive. I have a Subversion server located at http://test.net/svn with the following configuration for SVN:

<Location /svn>
    DAV svn
    SVNParentPath /path/to/repo/base
    AuthzSVNAccessFile /path/to/access
    AuthName "LDAP Auth"
    AuthBasicProvider ldap
    AuthType Basic
    AuthzLDAPAuthoritative off
    AuthLDAPURL "ldap://172.20.20.20:389/dc=test,dc=net?uid" NONE
    AuthLDAPBindDN "cn=svn,ou=system,dc=test,dc=net"
    AuthLDAPBindPassword secret
    Require valid-user
</Location>

Inside "/path/to/repo/base", I have around 80 repositories, each accessed by http://test.net/svn/repo-name. This one Apache configuration handles authentication for all of the repositories using the "/path/to/access file".

In the future, I'll do authorization using LDAP groups. However, I don't want to create separate Apache configurations for each repository. Basically, I would like to set a variable for the repository name using the Request URI. For example, I access http://test.net/svn/repo-name/path/to/file.txt and Apache knows that "repo-name" is the variable.

Something like this (syntax is not correct, just pseudo-code):

SetEnvIf Request_URI "http://test.net/svn/$1/.*" repo-name=$1
...
...
Require ldap-group cn=$repo-name,ou=system,dc=test,dc=net
4

0 に答える 0