LINUX.ORG.RU

Apache 2.4.2 - аутентификация через digest и dbm


0

1

Использую Apache 2.4.2 под виндой. Дистрибутив Apache Lounge (http://www.apachelounge.com/). Хочу сделать digest-авторизацию к каталогам сайта с использованием базы данных dbm. Все нужные модули подключены: mod_authn_core.so mod_auth_basic.so mod_auth_digest.so mod_authn_dbm.so

Файл .htaccess:

AuthType Digest AuthName «user1 realm» AuthDigestProvider dbm AuthDBMType default AuthDBMUserFile 1/p3 Require user user1

1/p3 – база данных паролей

Пытаюсь создать базу паролей. htdigest.exe – с базами данных не работает htdbm.exe – не работает с digest-авторизацией Пробую пока вручную через testdbm.exe (из набора утилит GnuWin32) и md5.exe. Пользователь и его realm – «user1:user1 realm» Пароль - 123 Получаю хеш - 299CAE02BEA2F270F0077B5A1772E734

В testdbm.exe создаю запись: Ключ - «user1:user1 realm» Данные – «299CAE02BEA2F270F0077B5A1772E734» Все вроде получается. При заходе в защищенный каталог на сайте выводится окно запроса пароля, realm выводится правильный. Ввожу логин - user1, пароль – 123, но не пускает!

В error.log появляется такая запись:

[Wed Jun 06 15:57:49.389625 2012] [auth_digest:error] [pid 3108:tid 1328] [client 127.0.0.1:2071] AH01790: user `user1' in realm `user1 realm' not found: /01, referer: http://127.0.0.1/

В базе данных логин/хеш есть – проверял утилитой testdbm.exe. /01 - запароленный каталог на веб-сайте

В основном конфиге на каталог веб-сайта стоит опция:

AllowOverride AuthConfig


Какая-то непонятка с форматами dbm-файла. Тот dbm-файл, который созадет testdbm.exe не подходит к апачу. Создаю dbm-файл апачевской утилитой:

htdbm -b -c -p <файл паролей>«user1_realm1» a599ac0dc7d3730da2f191ee7132fa22

Потом в hex-редакторе заменяю «user1_realm1» на «user1:realm1» И все работает без проблем!

Подскажите чем можно создавать корректный dbm-файл??

KLfer ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.