Проблемы с совместным использованием 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
Другие вопросы по тегам