2010-07-29 37 views
1

我正在Apache 2.2.15下的Windows下的Windows域中運行Mercurial 1.6,作爲中央repo服務器運行,選擇人員將提交權限。Mercurial,Apache,Windows,mod_auth_sspi和hg push

我想通過限制訪問Apache的/ cgi-bin /通過sspi_auth_module選擇用戶來限制對Mercurial的訪問。

如果我瀏覽到帶有sspi_auth_module的repo頁面,在/ cgi-bin /上強制實施限制,系統會提示輸入用戶名和密碼,該密碼被接受並且一切正常。

如果我嘗試使用CLI「汞推」從我的本地回購向服務器提交,請在命令行中,命令很快結束與消息:

abort: authorization failed 

如果我刪除/ cgi-bin /限制,推送作品。

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庫:/汞柱)

[collections] 
C:/Hg = C:/Hg 

[web] 
allow_push = * 
push_ssl = false 
allow_archive = bz2 gz zip 

我d喜歡讓域控制器擔心身份驗證(對我來說,比每個人都記住額外的密碼更好!) - 這是一種可行的方法嗎?

回答

1

我找到了解決方案。我懷疑,這個問題的一部分是我SSPIDomain指定沒有(誤認爲AuthName指令......杜)

不管怎樣,在httpd.conf下面的伎倆:(ScriptAlias指令是從有開始的時候,BTW)

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> 

我刪除了自己作爲一個需要的用戶,被提示輸入用戶名和密碼,無法進行身份驗證。然後我加回自己,並能夠確認。

感謝您的期待!