【问题标题】:How to authenticate users on TortoiseHg web server?如何在 TortoiseHg Web 服务器上验证用户身份?
【发布时间】:2009-12-10 03:27:59
【问题描述】:

TortoiseHg Web 服务器配置有一个“允许推送”参数,我在其中放置了允许推送更改的用户。但是当我尝试推送时,出现“授权失败”错误。用户是如何认证的?密码从哪里来?

【问题讨论】:

    标签: authentication mercurial dvcs tortoisehg


    【解决方案1】:

    设置allow_push = * 将允许任何人推送到您使用hg serve 服务的存储库。您当然应该只在受信任的网络上执行此操作。除此之外,您无法使用hg serve 进行身份验证——您需要在它前面有一个网络服务器来对用户进行身份验证。

    请参阅 hgrc 以获取对 allow_push 的简要说明,并参阅 wiki 以获取关于 hg serve 用途的稍长说明。

    【讨论】:

    • 感谢马丁的回答。他们说:“...经过身份验证的用户名必须出现在此列表中(由空格或, 分隔)” 那么我是否必须将用户通过 Web 服务器进行身份验证?我试图让 Windows 验证的用户没有成功。
    • 是的,您列出了经过网络服务器身份验证的用户。 Mercurial 对 Windows 一无所知:它只在调用 CGI 脚本之前查看由网络服务器设置的标准 REMOTE_USER 环境变量。
    • @MartinGeisler 您能解释一下如何使用 REMOTE_USER 将用户添加到hg server 网络服务器吗?如果它不能使用那个参数,为什么他们有它?还是仅当您将其他一些服务器与 Hg 集成时才有效?
    • @ArtB 您不能使用环境变量“将用户添加到hg serve”。我说的是 Mercurial 不做身份验证——它只做授权。如果您需要身份验证,请使用 Nginx 或 Apache 等前端网络服务器。
    • 谢谢,我很困惑。从wiki link 看来,该属性似乎只有在您将其与真正的网络服务器集成时才有效。
    【解决方案2】:

    我刚刚进入 Mercurial,据我所知(并在文档中阅读),TortoiseHg 网络服务器并不是一个永久的解决方案。文档似乎引导您运行 Apache 或 lighttpd。

    您可能还想查看Vampire Basic's tutorial on running Mercurial on Windows

    【讨论】:

    • 自从发布这篇文章以来,我已经阅读了链接到的教程,现在通过 WinXP/IIS 成功托管了 Hudson。
    【解决方案3】:

    我相信您可以在 [authorize] 部分下编辑您的 hgrc 文件: Store password in TortoiseHg

    【讨论】:

      猜你喜欢
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多