Назад | Перейти на главную страницу

git push over smart HTTP не работает с 403

Это сводит меня с ума. Я запускаю git 1.7.8.rc4 с Apache / 2.2.14 на Lucid Ubuntu и настраиваю аутентификацию LDAP. Аутентификация, похоже, работает нормально, и я могу тянуть, но не могу нажимать, не получая ошибки 403.

[Fri Dec 16 20:04:25 2011] [error] [client 10.60.226.130] client denied by server configuration: /opt/tools/libexec/git-core/git-http-backend

Мой файл сайта apache:

SetEnv GIT_PROJECT_ROOT /opt/git
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER

ScriptAlias /git/ /opt/tools/libexec/git-core/git-http-backend/

<Directory "/opt/git">
        Options -Indexes FollowSymLinks
        AllowOverride AuthConfig FileInfo
        Order allow,deny
        Allow from all
</Directory>

<Directory "/opt/tools">
  AllowOverride None
  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  Order allow,deny
  Allow from all
</Directory>

<LocationMatch "^/git/.*/git-receive-pack$">
        Order deny,allow
        Deny from all
        AuthName "GIT Repo"
        AuthType Basic
        AuthBasicProvider ldap
        AuthzLDAPAuthoritative off
        AuthLDAPURL "ldap://10.59.10.40:389/dc=shopping,dc=com"
        Require valid-user
</LocationMatch>

Все, что я нахожу в отношении «клиент отклонен конфигурацией сервера», говорит: «Добавить 'Разрешить порядок, запретить / Разрешить для всех' в правильную запись в Каталоге». Он есть, но все еще не работает. Любые идеи? Я знаю, что я действительно близок и, вероятно, это что-то очень простое.

Решено. Проблема была в блоке LocationMatch:

Order deny,allow
Deny from all

вызывал ошибку 403. Измените его на разрешающий, как в блоке Directory, и он изменится на 401, что оказалось проблемой с аутентификацией LDAP. Я изменил AuthBasicProvider на 'external' и использовал pwauth согласно (pyxzl.net/store/authnz.php)