2013-04-24 28 views
0

我正在通过HTTP提供Git,并希望使用Active Directory组锁定对每个存储库的访问权限。目前的相关配置如下:如何在Require指令中使用LocationMatch通配符?

下面是Apache的配置顶级指令:

<LocationMatch "^/git/.*$"> 
    Order allow,deny 
    Allow from all 

    AuthLDAPBindDN "[email protected]" 
    AuthLDAPBindPassword "somepassword" 
    AuthType Basic 
    AuthBasicProvider ldap 
    AuthLDAPURL "ldap://dc.domain.local:3268/DC=domain,DC=local?sAMAccountName?sub?(objectClass=*)" NONE 
    Require ldap-group cn=Domain Users,cn=Users,dc=domain,dc=local 
</LocationMatch> 

然后分开我有这样的事情每个仓库:

<Location /git/somerepo.git> 
    <Limit GET PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK> 
    Require ldap-filter memberof:1.2.840.113556.1.4.1941:=CN=somerepo,OU=Git,DC=domain,DC=local 
    </Limit> 
</Location> 

这工作,但需要无论何时添加/删除存储库,都会更改配置。有没有办法提取LocationMatch中的.*匹配的值,因此我们可以将它插入require ldap-filter指令中?

回答