我已經通過SSL設置了一個mercurial服務器。在Apache配置文件中,我使用mysql數據庫設置了身份驗證。mercurial ssl訪問允許拉動BUT要求身份驗證推送
我希望每個人都可以從存儲庫中取出沒有憑據的權限,但限制向認證用戶推送權限。現在完成的方式要麼是所有人都被拉和推,要麼沒有人。
我的Apache配置是這樣的:
<Location /hg/repo>
AuthType Basic
AuthName "Repository Access"
AuthBasicAuthoritative Off
AuthUserFile /dev/null
AuthMySQL On
AuthMySQL_Authoritative On
AuthMySQL_Host localhost
AuthMySQL_DB repo
AuthMySQL_User repo
AuthMySQL_Password_Table users_auth_external
AuthMySQL_Group_Table users_auth_external
AuthMySQL_Username_Field username
AuthMySQL_Password_Field passwd
AuthMySQL_Group_Field groups
AuthMySQL_Encryption_Types SHA1Sum
Require group pink-image
<LimitExcept GET>
Require valid-user
</LimitExcept>
</Location>
汞也需要認證的SSL拉,不管LimitExcept中開關。
有沒有一種方法來限制僅用於推送到存儲庫的身份驗證?
簡單的http訪問是不夠的,因爲如果某人是開發人員,她通過https檢出代碼。
SSH訪問是不可能的,因爲一些開發人員有防火牆禁止的ssh端口。
其中一個解決方案是如果hg會記住https憑據。
謝謝你閱讀這個問題。
這是正確的方法。另外需要注意的是,只有'Require'選項('Require group','Require valid-user'等)需要封裝在LimitExcept子句中。這允許關於訪問控制的進一步粒度(即,某些用戶/組被讀取,其他人被讀取/寫入) –