Ich verwende Apache 2.4 und möchte es ohne mod_access_compat verwenden.
Ich versuche, SVN-Repositorys mit Zugriffssteuerung zu bedienen, die von mod_authz_svn verwaltet wird.
Ich möchte, dass einige Repos oder Speicherorte innerhalb von Repos schreibgeschützten anonymen Zugriff haben. Ich möchte, dass andere Repos oder Speicherorte eine grundlegende Authentifizierung erfordern.
Apache 2.4 unterstützt die Satisfy all
Syntax nicht mehr , mod_authz_svn scheint dies jedoch zu erwarten. Wie soll das unter Apache 2.4 konfiguriert werden?
Apache-Konfiguration:
<Location /svn>
DAV svn
SVNParentPath /usr/projects/svn
AuthType Basic
AuthName "SVN repository"
AuthUserFile /usr/project-config/etc/svn-auth-file
AuthzSVNAccessFile /usr/project-config/etc/svn-access-control
Require valid-user
</Location>
SVN-Zugriffskontrolle:
# cat etc/svn-access-control
[/]
antiduh = rw
[openprojects:/]
* = r
antiduh = rw
Ich habe 5 Repos, openprojects ist das einzige, auf das ich anonymen Lesezugriff haben möchte. Ich kann das scheinbar nicht zum Laufen bringen. Selbst die neueste Dokumentation, die ich für mod_authz_svn finden konnte, wird weiterhin verwendet Satisfy all
.
quelle
mod_access_compat
?ap_satisfies(r) == SATISFY_ANY
. Ich denke, das bedeutet, dass es außerhalb von mod_access_compat nicht unterstützt wird, aber ich werde die Frage für eine Weile offen lassen, wenn jemand anderes an etwas denken kann.Antworten:
Beim Stöbern in der Quelle von mod_authz_svn sieht es so aus, als ob es eine starke Abhängigkeit von gibt
ap_satisfies(r) == SATISFY_ANY
. Ich bin mit dem Apache-API-Modell nicht ganz vertraut, aber dies scheint darauf hinzudeuten, dass mod_authz_svn das neue Authentifizierungsmodell von Apache 2.4 derzeit nicht unterstützt.Da niemand anderes eine Antwort oder gegenteilige Beweise gefunden hat, werde ich dies als Antwort markieren.
Laden Sie das
mod_access_compat
Modul, damit dies unter Apache 2.4 funktioniert :Fügen Sie dann die
Satisfy any
Klausel hinzu, wie in der Dokumentation derzeit angegeben.quelle
In den meisten Fällen besteht das Äquivalent von 2,4
Satisfy All
darin, dieRequire
Anweisungen in einen<RequireAll>
Block einzuschließen . Das Äquivalent vonSatisfy Any
wäre ein<RequireAny>
Block.Für weitere Informationen zu den Änderungen und Entsprechungen kann diese Präsentation (PDF) von Rich Bowen hilfreich sein.
quelle
<RequireAny>Require valid-user</RequireAny>
ist das, was ich versucht habe, was nicht wirklich viel Sinn macht, aber es ist alles, was ich versuchen kann.Es ist möglich, eine separate
Location
Authentifizierung ohne Authentifizierung für eine Teilmenge der SVN-Protokollbefehle zu erstellen , z.Auf diese Weise können nicht authentifizierte Benutzer die Repos lesen und authentifizierte Benutzer erhalten den Zugriff gemäß den
svn-authz-file
Regeln. (In diesem Beispiel erlauben wir auch die Authentifizierung über PAM für Systembenutzer sowie für diejenigen in derhtpasswd
Datei.)quelle