Проблема с SVN svnserve и SASL с использованием DIGEST-MD5 в 64-битной Windows. (Win 7 и Server 2008)
Я пытаюсь заставить Subversion 1.8.5 + SASL2 работать на Windows 7 или Server 2008, либо 64-битная версия. Я просто хочу локальное шифрование от SASL с использованием DIGEST-MD5. Мне не нужны LDAP, AD, SSPI или любые другие методы аутентификации.
Я боролся с этим в течение двух дней, поэтому документирование всего, что я пробовал, на самом деле не является ценным способом обратиться за помощью.
Все ссылки, учебные пособия и т. Д., Которые я обнаружил, по-видимому, указывают на то, что это довольно просто на компьютере с XP, на Server 2003 или на 32-разрядной машине. Но мое окружение кажется достаточно отклоняющимся, чтобы вызвать у меня головную боль.
Мой вывод заключается в том, что библиотеки svnserve / sasl не могут прочитать файл sasldb. Вот что я сделал, и как я могу сделать такой вывод.
Я следую инструкциям в главе по настройке сервера. также это было полезно: http://tortoisesvn.net/sasl_howto.html (и многое из этого повторяется по всей сети)
(Во многих документах написано "добавить ключи реестра" SearchPath и ConfFile, но установщики CollabNet и Cyrus добавили "строки" под этими ключами... что-то, что, вероятно, должно быть исправлено в документе. Кроме того, я знаю о Wow6432Node для 32-битных приложений в 64-битном мире)
Я получил всю настройку, работающую в Linux (Ubuntu). Итак, я знаю, как настроить шифрование DIGEST-MD5 и добавить пользователей. (Причина, по которой мне нужна Windows, заключается в том, что мы также делаем сборки Windows на компьютере, поэтому нам нужна среда Windows)
Я использую CollabNet, сборку Win32 (но я также пробовал сборку x64). Он поставляется с уже существующими библиотеками Sasl, но не имеет ни одного исполняемого файла для управления sasldb. Поэтому я также загрузил двоичные файлы для Sasl из sourceforge (cyrus-sasl-2.1.26-static-x86), чтобы я мог создавать и управлять файлом sasldb.
Достаточно фона. Моя проблема в том, что я получаю ошибку:
SASL (-13): пользователь не найден
Пользователь находится в файле БД. Я положил его туда, и могу увидеть это с помощью команды sasldblistusers2.
Интересно, что они перечислены три раза в версии для Windows:
я @TheRealm: userPassword
я @TheRealm: cmusaslsecretOTP
я @TheRealm: cmusaslsecretSRP
Но он указан только один раз, первая строка, в sasldb, который я создал на машине linux.
Я изначально запускаю svnserve из командной строки. И будет, пока у меня все заработает, и я буду готов установить его в качестве службы.
К сожалению, после появления сообщения о выполнении libSasl не появляется ни одного сообщения об ошибке.
Вот что я предположил, это поток:
Клиент -> Svnserve ->libSasl -> реестр SearchPath -> Libs -> реестр ConfFile -> файл Sasldb
Поэтому я систематически повредил некоторые настройки по указанному выше пути, чтобы увидеть, какие ошибки были.
Я изменил subsersion.conf, чтобы просто использовать файл паролей. Все хорошо.
Я удалил libSasl - Очевидно, сервер даже не запустился.
Я изменил SearchPath - Сбой "svn не удалось получить список..." Хорошо.
Я изменил его обратно, получил "пользователь не найден". Хорошо
Я удалил файл svn.conf. Получил "SVN не может получить список..." Хорошо.
Я положил его обратно и изменил настройку ConfFile. Та же ошибка: "svn не может получить список..."
Я испортил запись "mech_list: DIGEST-MD5" в файле svn.conf. Та же ошибка: "svn не может получить список..."
Поэтому, когда все настроено правильно, я получаю ошибку "пользователь не найден".
Если я удаляю или изменяю запись "sasldb_path:", я все равно получаю ошибку "пользователь не найден".
Мой вывод заключается в том, что библиотека server / sasl находит все шаги, чтобы добраться до файла svn.conf, и даже читает из него строку "mech_list:", поэтому она должна быть в состоянии найти имя указанного файла sasldb, который я указала,
Но по какой-то причине он не может открыть файл или, если может, не может найти добавленное мной имя.
Я переместил файл и изменил права на него. Нет разницы.
Я даже скопировал файл sasldb с машины linux на машину с Windows (поэтому он пытается прочитать этот файл, который имеет только одно имя, и я знаю, что он работает при установке Linux). Но это не имело значения.
У кого-нибудь есть совет?
Кто-нибудь получил это для работы в 64-битной системе?
Заранее благодарю за любую помощь.
-Скотт