Apache2: aninhado requer declarações dentro do Local

2

Gostaria de configurar regras de autorização LDAP diferentes para diferentes níveis de um URL. Esta é a configuração usada atualmente

    <Location />
            AuthType Basic
            AuthName "Foo"
            AuthBasicProvider ldap
            AuthLDAPURL "..."
            AuthLDAPBindDN  "..."
            AuthLDAPBindPassword "..."
    </Location>

    <Location />
            Require ldap-group cn=foo,ou=Groups,dc=com,dc=company
    </Location>

    <Location /path/>
            Require ldap-user bar
    </Location>

O problema é que /path/ herda as regras de / . Portanto, para que o usuário bar possa acessar /path/ , ele também deve estar no grupo foo .

Como posso configurar o usuário bar para poder acessar /path/ sem ter que ser membro do grupo foo ?

EDITAR: % deldap-group alterado para ldap-user para /path/ para obter uma descrição precisa do problema.

    
por Johan Sjöberg 21.02.2012 / 15:07

1 resposta

0

Meu entendimento (e eu apenas lutei para encontrar documentação de suporte sólida) é que as diretivas Location são cumulativas, então você está essencialmente aplicando duas diretivas Require. E se você fizesse algo assim:

<LocationMatch "/[^path]">
    Require ldap-group cn=foo,ou=Groups,dc=com,dc=company
</Location>

<Location /path/>
    Require ldap-group cn=bar,ou=Groups,dc=com,dc=company
</Location>

Você precisará verificar se essa expressão regular é compatível com o apache, mas acredito que essa abordagem funcionará.

    
por 21.02.2012 / 15:22