我已经通过 SSL 设置了一个 mercurial 服务器。在 apache 配置文件中,我使用 mysql 数据库设置了身份验证。
我希望每个人都能够在没有凭据的情况下从存储库中提取,但将推送权限限制为经过身份验证的用户。现在完成的方式要么是每个人都通过拉取和推送的身份验证,要么没有人是。
我的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>
hg 还需要对 ssl pull 进行身份验证,无论 LimitExcept 开关。
有没有办法限制身份验证仅用于推送到存储库?
简单的 http 访问是不够的,因为如果某人是开发人员,她会通过 https 签出代码。
SSH 访问是不可能的,因为一些开发者有防火墙禁止的 ssh 端口。
解决方案之一是 hg 是否会记住 https 凭据。
感谢您阅读问题。