Substituindo a diretiva de autenticação do Apache

1

Estou tentando permitir o acesso público a um método que gera um arquivo WSDL para nossa API. O resto do site está por trás da proteção básica de autenticação. Vocês podem dar uma olhada na seguinte configuração de host virtual e ver por que a substituição não ocorre?

<VirtualHost *:80>
        ServerName xyz.mydomain.com
        DocumentRoot /var/www/dev/public

        <Directory /var/www/dev/public>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all

                SetEnv APPLICATION_ENV testing
        </Directory>

        <Location />
                AuthName "XYZ Development Server"
                AuthType Basic
                AuthUserFile /etc/apache2/xyz.passwd
                Require valid-user
        </Location> 

        <Location /api/soap/wsdl>
           Satisfy Any
           allow from all
        </Location>

</VirtualHost>
    
por PatrikAkerstrand 17.06.2010 / 17:07

2 respostas

1

Eu acredito que você precisa:

Satisfy any
allow from all

em um bloco de diretório, em vez de um bloco de localização para que ele seja considerado.

    
por 17.06.2010 / 17:31
1

A diretiva Location (e LocationMatch) pode usar Expressão Regular. Por que não usar uma correspondência de local com uma regex para não corresponder à página da API que você está hospedando. Por exemplo:

<LocationMatch "(?!/api/soap/wsdl)">
  AuthName "XYZ Development Server"
  AuthType Basic
  AuthUserFile /etc/apache2/xyz.passwd
  Require valid-user
</LocationMatch>
    
por 22.06.2010 / 04:48