У меня есть базовая аутентификация, настроенная для пользователей и групп
AuthType Basic
AuthName "GSD Dev Area"
AuthUserFile /coding/conf/passwords/gsdesign/htpasswd
AuthGroupFile /coding/conf/passwords/gsdesign/groups
Require valid-user
и теперь я хочу защитить папку с доступом только для группы
require group myGroup
и это работает, но есть одна проблема. Если я не предоставлю доступ к этой папке, я снова получу окно входа в систему, и я хотел бы, чтобы это было запрещено. Как я могу это сделать.
Большое спасибо.
Позже Править Я уже вошел в систему с действительным именем пользователя, но когда я получаю доступ к области, в которой есть группа требований, в которой я не являюсь, я хочу получить отказ в авторизации вместо поля входа.
Не уверен, что я понимаю вопрос, но я думаю, что вы говорите, что когда вы указываете неверную комбинацию имени пользователя и пароля, браузер снова открывает окно вместо того, чтобы сказать «Доступ запрещен». Это особенность браузера - он будет запрашивать у вас учетные данные до тех пор, пока вы не получите их правильно или пока не нажмете кнопку «Отмена» (после этого вы действительно получите страницу с отказом в доступе). Насколько мне известно, единственный надежный способ изменить это - выполнить аутентификацию самостоятельно, а не использовать AuthType Basic.
Кстати, Никогда никогда используйте AuthType Basic для защиты всего, что вас волнует, если только ваша страница не обслуживается по https. AuthType Basic отправляет учетные данные в виде обычного текста, поэтому вам понадобится уровень SSL для их шифрования.
Это вполне возможно, но для этого потребуется написать собственный обработчик для Apache. Вы можете написать, что это C, Perl или Python или любая другая привязка для API обработчика Apache.
Стандартным поведением аутентификации HTTP является возврат ответа 401 Authentication Required для обоих запросов без какой-либо информации аутентификации и для неверных данных. Браузер представит диалоговое окно входа в систему, когда получит ответ 401. Вам придется отвечать на запросы без аутентификационной информации с ответом 401 Authentation Required, а на любую неправильную аутентификацию - с 403 Forbidden. Это должно решить вашу проблему.