Frage

Ich versuche, eine Seite auf meinem Apache-Server mit MySQL-Authentifizierung verwenden mod_dav_svn zu konfigurieren.

Ich verwende eine Datenbank mit drei Tabellen wie folgt

auth_users
----------
uid    username  passwd
1      UserA     pass
2      UserB     pass

.

auth_groups
-----------
gid    group
1      repo_rw
2      repo_ro

.

users_groups
uid    gid
1      1
2      2

Deshalb: -

UserA ist ein Mitglied der Gruppe repo_rw BenutzerB ist ein Mitglied der Gruppe repo_ro

Ich benutze dann die folgende in meiner httpd.conf: -

<VirtualHost *:80>
  DocumentRoot /var/www
  ServerName repo.srv.domain.com
  ServerPath /var/www

  <Location /svn>
    DAV svn

    SVNPath /var/svn/repo

    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /dev/null
    AuthBasicAuthoritative Off

    AuthMySQL_Authoritative on
    AuthMySQL_Empty_Password off
    AuthMySQL_Encryption_Types Plaintext

    AuthMySQL_Password_Table "auth_users u"
    AuthMySQL_Username_Field "u.username"
    AuthMySQL_Password_Field "u.passwd"

    AuthMySQL_Group_Table "auth_groups g RIGHT JOIN users_groups ug ON (ug.gid=g.gid) RIGHT JOIN auth_users u ON (ug.uid=u.uid)"
    AuthMySQL_Group_Field "g.group"

    <Limit GET PROPFIND OPTIONS REPORT>
      Require group repo_rw
    </Limit>
  </Location>
</VirtualHost>

In dieser Konfiguration ich in der Lage bin Benutzer rw Zugriff auf das Repository / var / svn / repo zu geben, als gültige Benutzer dieses Repository authentifiziert.

Ich bin auch mehrere Virtualhost Einträge hinzufügen kann „Repo“ in den verschiedenen Standorten zu einem neuen reposiotry Namen ersetzen und einen kontrollierten rw Zugriff auf einzelne Repositories.

Mein Problem ist, dass ich nicht in der Lage bin nur Zugriff auf Repositories hinzufügen Lesen und anonym auch nur Lesezugriff.

Ich habe sollte es möglich sein hinzuzufügen

<LimitExcept GET PROPFIND OPTIONS REPORT>
  Require group repo_ro
</Limit>

auf den Abschnitt, und dies sollte nur Zugriff auf das Repository zur Verfügung stellen lesen, ich habe aber nicht in der Lage gewesen, diese Arbeit zu machen. tail-ing MySQL-Log zeigt nur die repo_rw abgefragt wird.

Wenn jemand einen Rat geben kann, würde ich sehr dankbar!

War es hilfreich?

Lösung

Es scheint diese Methode einfach nicht funktionieren. Es gibt mahy Ressourcen onb das Netz darauf hindeutet, es wird, aber keiner scheint mit den aktuellen Versionen von Apache / MySQL / modules zu arbeiten.

Es gibt zwei Optionen für die granulare Zugriffskontrolle 1) Auth-Dateien nur, mysql-Authentifizierung überspringen und halten mit Standard-Apache-auth methods, oder 2) madify Hook-Scripts zu definieren, welche Zugriffs Benutzer haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top