Mercurial,Apache,Windows,mod_auth_sspi和hg push

我在Apache 2.2.15下的Windows域中的Windows框中玩Mercurial 1.6,作为中央repo服务器运行,select人员将提交权限。

我试图通过限制访问Apache的/ cgi-bin /来通过sspi_auth_moduleselect用户来限制对Mercurial的访问。

如果我使用sspi_auth_module浏览到repo页面,在/ cgi-bin /上强制执行限制,系统会提示input用户名和密码,这样可以接受并且一切正常。

如果我尝试使用CLI“hg push”从本地repo提交到服务器,从命令行,该命令终止非常快,消息:

abort: authorization failed 

如果我删除/ cgi-bin / restrictions,推送作品。

httpd.conf的相关部分:(名称编辑)

 <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all AuthName "XXXXXX" AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIOmitDomain On Require user "xxxxxx" </Directory> 

我的hgweb.config文件的相关部分(存储在C:/ Hg中的存储库)

 [collections] C:/Hg = C:/Hg [web] allow_push = * push_ssl = false allow_archive = bz2 gz zip 

我想让域控制器担心身份validation(对我来说,比让所有人都记住额外的密码更好!) – 这是一个可行的方法吗?

我找到了解决方案。 我怀疑这个问题的一部分是我没有指定SSPIDomain (把它误认为AuthName … duh)

无论如何,httpd.conf中的以下内容是有用的:(ScriptAlias指令从一开始就在那里)

 ScriptAlias /hg "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/hgweb.cgi" <Location /hg> AuthName "Mercurial Authentication" AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIDomain XXXXXX SSPIOmitDomain On SSPIOfferBasic On SSPIBasicPreferred Off Require user "xxxxxx" </Location> 

我作为必需的用户删除了自己,被提示输入用户名和密码,并且无法进行身份验证。 然后我加回自己,并能够确认。

感谢您的期待!