我试图让Subversion 1.8.5 + SASL2在Windows 7或Server 2008上运行,其中一个是64位。我只想使用DIGEST-MD5从SASL进行本地加密。我不需要LDAP,AD,SSPI或任何其他身份验证方法。
我已经为这两天苦苦挣扎了,所以记录我尝试的所有不同的东西并不是寻求帮助的宝贵方式。
我发现的所有链接,教程等似乎都表明这在XP机器上,或在Server 2003上,或在32位机器上都相当容易。但是我的环境似乎偏离了足以使我头疼。
我的结论是svnserve / sasl库无法读取sasldb文件。这就是我所做的,以及我如何得出这个结论。
我按照设置服务器一章中的说明进行操作。 这也很有帮助: http://tortoisesvn.net/sasl_howto.html (其中很多都是在'网上'重复的)
(许多文档说添加注册表'密钥'SearchPath和ConfFile,但是CollabNet和Cyrus安装程序在这些密钥下添加了“字符串”......这些内容可能应该在文档中得到纠正。另外,我知道Wow6432Node用于64位世界中的32位应用程序)
我 让整个设置在Linux(Ubuntu)中运行。所以我知道如何设置DIGEST-MD5加密并添加用户。 (我需要Windows的原因是我们也在机器上进行Windows构建,因此需要Windows环境)
我正在使用CollabNet,Win32 build(但我也尝试过x64版本)。它附带了已存在的Sasl库,但没有任何可执行文件来管理sasldb。所以我还从sourceforge(cyrus-sasl-2.1.26-static-x86)下载了Sasl的二进制文件,因此我可以创建和管理sasldb文件。
足够的背景。我的问题是我收到错误:
SASL(-13):找不到用户
DB文件中的用户是。我把它放在那里,可以用sasldblistusers2命令看到它。
有趣的是,它们在Windows版本中列出了三次:
me @TheRealm:userPassword
me @ TheRealm:cmusaslsecretOTP
me @ TheRealm:cmusaslsecretSRP
但它只在我在linux机器上创建的sasldb中列出一次,第一行。
我从命令行初始运行svnserve。直到我开始工作,并准备将其作为服务安装。
可悲的是,在执行似乎进入libSasl后,没有报告单个错误消息。
以下是我所推测的流程:
客户 - > Svnserve - > libSasl - > SearchPath注册表 - > Libs - > ConfFile Registry - > Sasldb文件
所以我系统地破坏了上述路径中的一些设置,以查看错误是什么。
我将subsersion.conf更改为只使用密码文件。一切都是 好。
我删除了libSasl - 显然服务器甚至没有启动。
我更改了SearchPath - 它失败了“svn无法获取...的列表”确定。
我改回来了,“找不到用户”。确定
我删除了svn.conf文件。得到“svn无法获得列表......”好的。
我把它放回去,并更改了ConfFile设置。同样的错误:“svn无法获取列表......”
我损坏了svn.conf中的条目“mech_list:DIGEST-MD5”。同样的错误:“svn无法获取列表......”
因此,当一切设置正确后,我会收到“找不到用户”错误。
如果我删除或更改“sasldb_path:”条目,我仍然会“不是用户” 发现“错误。
我的结论是server / sasl库找到了获取svn.conf文件的所有步骤,甚至从中读取了“mech_list:”行,所以它必须能够找到sasldb的名称我指定的文件。
但由于某种原因,它实际上无法打开文件,或者如果可以,它找不到我添加的名称。
我移动了文件,并更改了它的权限。没有区别。
我甚至将sasldb文件从linux机器复制到了windows机器(所以它试图读取那个只有一个名字的文件,我知道在linux安装上工作)。但它没有任何区别。
有没有人有任何建议?
有没有人让这个在64位系统中工作?
提前感谢您的帮助。
斯科特