2012-03-01 44 views
1

我設置了一個帶有LDAP認證的mercurial服務器,我希望允許每個repo訪問,所以我在.hg下爲每個repo創建一個hgrc。allow_push上.hg/hgrc似乎不起作用

[web] 
allow_push = user1 

我的問題是,如果我使用這些hgrc文件,我不能推任何用戶(中止:授權失敗)。如果我只是使用hgweb.config我可以做到沒有問題

任何幫助嗎?

感謝

回答

2

當你把這些線在你hgweb.config文件,你可以把與任何用戶或只有你列出的人?我的猜測是你的LDAP提供的用戶名格式不符合你的預期(可能是電子郵件地址等),所以他們不匹配。

請檢查您的apache錯誤日誌是否有任何有趣的內容,並考慮更改日誌格式以記錄$REMOTE_USER環境用戶以查看匹配的內容。另外,如果您不使用SSL連接(儘管您應該),請確保您的push_ssl值設置爲false。

+0

如果我使用hgweb.config我可以只用正確的用戶名推送。如果我在hgrc文件上寫入任何allow_push,我無法執行任何操作... – 2012-03-01 22:45:17

+0

如何記錄$ REMOTE_USER?我認爲這是'%u'。什麼是'push_ssl'設置?你使用SSL嗎? – 2012-03-02 00:46:11

1

當你的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