autenticação básica do apache requer que o grupo não seja proibido

1

Eu tenho uma autenticação básica configurada com usuário e grupos

AuthType Basic
AuthName "GSD Dev Area"
AuthUserFile /coding/conf/passwords/gsdesign/htpasswd
AuthGroupFile /coding/conf/passwords/gsdesign/groups    
Require valid-user      

e agora eu quero proteger uma pasta com acesso apenas para um grupo

require group myGroup

e funciona, mas há um problema. Se eu não deu acesso a essa pasta eu recebo a janela de login novamente, e eu gostaria de através de proibido. Como posso fazer isso?

Muito obrigado.

Edição posterior Eu já estou logado com um nome de usuário válido, mas quando eu acesso uma área que tem um grupo de exigir que eu não faço parte eu quero obter uma autenticação negada em vez da caixa de login.

    
por Gabriel Solomon 27.06.2009 / 22:05

2 respostas

1

Poderia ser possível fazer isso, mas seria necessário que você escrevesse um manipulador personalizado para o Apache. Você pode escrever isso é C, Perl ou Python ou qualquer uma das outras ligações para a API do manipulador Apache.

O comportamento padrão da autenticação HTTP é retornar uma resposta 401 Autenticação necessária para ambas as solicitações sem qualquer informação de autenticação e para detalhes incorretos. Um navegador apresentará uma caixa de diálogo de login sempre que receber uma resposta 401. Você teria que responder a solicitações sem informações de autenticação com uma resposta 401 Authentication Required e qualquer autenticação incorreta com uma resposta 403 Forbidden. Isso deve resolver seu problema.

    
por 28.06.2009 / 02:10
1

Não tenho certeza se entendi a pergunta, mas acho que você está dizendo que quando você dá uma combinação inválida de nome de usuário / senha, o navegador abre a janela novamente em vez de dizer "Acesso negado". Este é um recurso do navegador - ele solicitará as credenciais até que você as acerte ou até que você clique em cancelar (nesse ponto, você obterá a página de acesso negado). Até onde sei, a única maneira confiável de mudar isso é fazer a autenticação você mesmo, em vez de usar o AuthType Basic.

A propósito, nunca, nunca use AuthType Basic para proteger qualquer coisa de seu interesse, a menos que sua página seja exibida por meio de https. O AuthType Basic envia as credenciais em texto simples, então você precisa da camada SSL para criptografá-lo para você.

    
por 28.06.2009 / 01:14