Назад | Перейти на главную страницу

Проблема совместного использования учетных записей 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 <> линии дают ту же проблему

Алгоритм шифрования 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