Проблемы с совместным использованием Subversion и BugZilla
Я установил bugzilla и Subversion на свой сервер. Я хотел бы, чтобы они поделились счетами. Так что я погуглил и нашел этот пост здесь. Я установил mod_auth_mysql, применил патч для apache 2.2.3, но он не работает. При просмотре журналов ошибок моего apache я обнаружил несоответствие пароля: / Давайте предположим, что у меня есть такой пользователь в bugzilla:
test@test.com, пароль: test1234
Когда я пытаюсь войти в репозиторий SVN, появляется форма входа, но я не могу войти. В журнале ошибок сервера я нахожу:
[Sat Dec 18 15:25:10 2010] [error] [client 83.4.164.217] user test@test.com: password mismatch: /svn
Я также отлаживаю MySQL запросы, которые отправляются на сервер, и я нашел это:
101218 15:25:10 85 Connect bugs@localhost on
85 Init DB bugs
85 Query SELECT cryptpassword, length(cryptpassword) FROM profiles WHERE login_name='test@test.com' AND disabledtext = ''
Когда я выполняю тот же запрос вручную, я получаю следующий результат:
mysql> SELECT cryptpassword, length(cryptpassword) FROM profiles WHERE login_name='test@test.com' AND disabledtext = '';
+--------------------------------------------------------------+-----------------------+
| cryptpassword | length(cryptpassword) |
+--------------------------------------------------------------+-----------------------+
| Jnm2qVBMbifU7PEZyl+exbYEAsO8SZh1x2ratGhqfikMg1bxYFg{SHA-256} | 60 |
+--------------------------------------------------------------+-----------------------+
1 row in set (0.00 sec)
И мой в моем apache conf:
<Location /svn >
DAV svn
SVNPath /etc/subversion
AuthzSVNAccessFile /home/yuri/.svncontrol
AuthType Basic
AuthMySQLSaltField <>
AuthName "Mwuahahaha this is protected!"
AuthMySQLPwEncryption crypt
AuthMySQLUser bugs
AuthMySQLPassword <some_pass>
AuthMySQLDB bugs
AuthMySQLUserTable profiles
AuthMySQLNameField login_name
AuthMySQLPasswordField cryptpassword
AuthMySQLUserCondition "disabledtext = ''"
Require valid-user
</Location>
Тот же конфиг но без AuthMySQLPwEncryption crypt
а также AuthMySQLSaltField <>
линии дает ту же проблему
1 ответ
Алгоритм шифрования в mod_auth_mysql использует хэш-формат, отличный от алгоритма Bugzilla, например пароль шифрования SHA-256 будет выглядеть так:
$5$rounds=5000$usesomesillystri$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6
Кроме того, маловероятно, что ваш дистрибутив Linux снабдит команду crypt алгоритмом sha-256. Для этого mod_auth_mysql использует функцию crypt библиотеки c.
Лучшим вариантом может быть переключить Bugzilla на менее безопасный алгоритм шифрования (md5) и установить mod_auth_mysql, чтобы использовать его вместо этого:
AuthMySQLPwEncryption md5