在Windows 64位上使用DIGEST-MD5的SVN svnserve和SASL问题。 (Win 7和Server 2008)

时间:2014-01-05 02:48:25

标签: windows svn 64-bit sasl svnserve

我试图让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位系统中工作?

提前感谢您的帮助。
斯科特

0 个答案:

没有答案