【发布时间】:2012-03-01 13:31:56
【问题描述】:
我正在使用 LDAP auth 设置一个 mercurial 服务器,我想在其中允许每个 repo 访问,所以我在 .hg 下为每个 repo 创建一个 hgrc。
[web]
allow_push = user1
我的问题是,如果我使用这些 hgrc 文件,我无法向任何用户推送(中止:授权失败)。如果我只使用 hgweb.config 我可以毫无问题地做到这一点
有什么帮助吗?
谢谢
【问题讨论】:
我正在使用 LDAP auth 设置一个 mercurial 服务器,我想在其中允许每个 repo 访问,所以我在 .hg 下为每个 repo 创建一个 hgrc。
[web]
allow_push = user1
我的问题是,如果我使用这些 hgrc 文件,我无法向任何用户推送(中止:授权失败)。如果我只使用 hgweb.config 我可以毫无问题地做到这一点
有什么帮助吗?
谢谢
【问题讨论】:
当您将这些行放入您的 hgweb.config 文件时,您可以使用 any 用户推送还是只推送您列出的用户?我的猜测是您的 LDAP 提供的用户名格式与您预期的不同(可能是电子邮件地址等),因此它们不匹配。
检查您的 apache 错误日志是否有任何有趣的内容,并考虑更改日志格式以记录 $REMOTE_USER 环境用户以查看匹配的内容。此外,如果您不使用 SSL 连接,请确保您的 push_ssl 值设置为 false(尽管您应该这样做)。
【讨论】:
%u。 push_ssl 设置为什么?你在使用 SSL 吗?
当你的 HTTP 服务器是 Nginx 时,修改log_format 找出哪个用户从 Nginx 重定向到 HG
vi /etc/nginx/nginx.conf
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
并查看 Nginx 日志文件
cat /var/log/nginx/nginx.log
【讨论】: