A diretiva Apache Limit é ignorada, o conteúdo é executado sempre

2

Eu quero que os usuários sejam autenticados ao chamar um método HTTP específico, sem precisarem ser autenticados ao chamar outros métodos HTTP. Eu uso a diretiva Limit , porque é suposto fazer o que eu quero, mas não consigo fazer funcionar.

SSLVerifyClient none
<Location /foo>
    SSLVerifyClient none
    <Limit PUT>
        SSLVerifyClient require
    </Limit>
</Location>

Parece que a última instrução SSLVerifyClient é sempre executada, não importa qual chamada eu faça (PUT, DELETE)

Eu também tentei usar LimitExcept , mas ele tem o mesmo comportamento defeituoso.

Como não consigo encontrar respostas on-line, presumo que isso seja óbvio, mas comecei a trabalhar na semana passada para preencher um colega que está de férias. Alguém pode me ajudar?

    
por neXus 17.02.2015 / 09:52

1 resposta

0

Parece que a diretiva Limit só funciona para restringir o acesso. Outras diretivas dentro dela podem não funcionar ou não funcionar conforme o esperado. No seu caso, pode não ser possível acionar valores diferentes de SSLVerifyClient , dependendo do tipo de solicitação.

Uma solução alternativa pode ser criar diretórios ou aliases diferentes, configurados com valores diferentes da diretiva SSLVerifyClient e, possivelmente, manipulando diferentes conjuntos de métodos HTTP.

link :

<Limit> Directive

Description: Restrict enclosed access controls to only certain HTTP methods.

The purpose of the directive is to restrict the effect of the access controls to the nominated HTTP methods. For all other methods, the access restrictions that are enclosed in the bracket will have no effect.

    
por 17.02.2015 / 12:28