Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mercurial ssl访问允许拉,但需要对推进行身份验证_Mercurial_Apache2_Hgweb - Fatal编程技术网

mercurial ssl访问允许拉,但需要对推进行身份验证

mercurial ssl访问允许拉,但需要对推进行身份验证,mercurial,apache2,hgweb,Mercurial,Apache2,Hgweb,我已经通过SSL设置了mercurial服务器。在apache配置文件中,我使用mysql数据库设置了身份验证 我希望每个人都能够在没有凭据的情况下从存储库中提取,但将推送权限限制为经过身份验证的用户。现在的做法是,要么每个人都通过拉和推的身份验证,要么没有人通过 我的apache配置如下: <Location /hg/repo> AuthType Basic AuthName "Repository Access" AuthBasicAuthoritative O

我已经通过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>

AuthType Basic
AuthName“存储库访问”
授权关闭
AuthUserFile/dev/null
授权
授权
AuthMySQL\u主机localhost
AuthMySQL_DB repo
AuthMySQL\u用户repo
AuthMySQL\u密码\u表用户\u auth\u外部
AuthMySQL\u组\u表用户\u auth\u外部
AuthMySQL\u用户名\u字段用户名
AuthMySQL\u密码\u字段密码
AuthMySQL\u组\u字段组
AuthMySQL\u加密\u类型SHA1Sum
需要组粉红色图像
需要有效用户
hg还要求对ssl请求进行身份验证,无论是在LimitExcept交换机上

是否有一种方法可以限制仅用于推送到存储库的身份验证

简单的http访问是不够的,因为如果某人是开发人员,她会通过https检查代码

SSH访问是不可能的,因为一些开发人员的SSH端口被防火墙禁止

其中一个解决方案是hg是否能够记住https凭证

谢谢你阅读这个问题

One of the solutions would be if hg would remember the https credentials.
它可以记住推拉的凭证。如果您不介意将详细信息添加到其中一个配置文件(用户的配置或存储库克隆的
hgrc
),请查看
hg help config
auth
部分

这意味着将密码放入您可能不喜欢的配置文件中,以便您可以使用更安全地存储密码的

它可以记住推拉的凭证。如果您不介意将详细信息添加到其中一个配置文件(用户的配置或存储库克隆的
hgrc
),请查看
hg help config
auth
部分


这意味着将密码放入您可能不喜欢的配置文件中,以便您可以使用更安全地存储密码的

结果证明,自动凭证是不够的。存储库不能通过web界面访问。但是,相同的配置文件会在浏览器中弹出一个身份验证对话框,这使得web界面无法使用。

结果表明,自动凭据是不够的。存储库不能通过web界面访问。但是,相同的配置文件会在浏览器中弹出一个身份验证对话框,使web界面无法使用。

身份验证应包装到异常规则中

<Location /hg/repo>
   <LimitExcept GET>
        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>
</Location>

AuthType Basic
AuthName“存储库访问”
授权关闭
AuthUserFile/dev/null
授权
授权
AuthMySQL\u主机localhost
AuthMySQL_DB repo
AuthMySQL\u用户repo
AuthMySQL\u密码\u表用户\u auth\u外部
AuthMySQL\u组\u表用户\u auth\u外部
AuthMySQL\u用户名\u字段用户名
AuthMySQL\u密码\u字段密码
AuthMySQL\u组\u字段组
AuthMySQL\u加密\u类型SHA1Sum
需要组粉红色图像

应将身份验证包装到异常规则中

<Location /hg/repo>
   <LimitExcept GET>
        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>
</Location>

AuthType Basic
AuthName“存储库访问”
授权关闭
AuthUserFile/dev/null
授权
授权
AuthMySQL\u主机localhost
AuthMySQL_DB repo
AuthMySQL\u用户repo
AuthMySQL\u密码\u表用户\u auth\u外部
AuthMySQL\u组\u表用户\u auth\u外部
AuthMySQL\u用户名\u字段用户名
AuthMySQL\u密码\u字段密码
AuthMySQL\u组\u字段组
AuthMySQL\u加密\u类型SHA1Sum
需要组粉红色图像

这是正确的方法。作为补充说明,只有
Require
选项(
Require group
Require valid user
等)需要封装在LimitExcept子句中。这允许进一步细化访问控制(即某些用户/组读取,其他用户/组读取/写入),这是正确的方法。作为补充说明,只有
Require
选项(
Require group
Require valid user
等)需要封装在LimitExcept子句中。这允许访问控制方面的进一步粒度(即,某些用户/组获得读取,其他用户/组获得读取/写入)