Использую 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 user11/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-файл??