3 mod_authz_svn will be installed alongside mod_dav_svn when the regular
4 installation instructions are followed.
6 NOTE: the module is functional, but you should consider it experimental.
7 Some configurations may or may not have the desired effect. Be sure
8 to test if your configuration works as intended.
15 Modify your httpd.conf. Add the following line _after_ the one that
18 LoadModule authz_svn_module modules/mod_authz_svn.so
20 There are several ways to setup access checking for your subversion
21 location. These are simple examples, for more complex configuration
22 of authentication/authorization with Apache, please refer to the
23 documentation: http://httpd.apache.org/docs-2.0/.
25 A. Example 1: Anonymous access only
27 This configuration will allow access only to the directories everyone
28 has permissions to do the operation performed. All other access is
29 denied. See section II.2 on how to set up permissions.
33 SVNPath /path/to/repos
35 AuthzSVNAccessFile /path/to/access/file
38 B. Example 2: Mixed anonymous and authenticated access
40 This configuration checks to see if anonymous access is allowed
41 first, if not, it falls back to checking if the authenticated
42 user has permissions to do the operation performed.
46 SVNPath /path/to/repos
49 AuthName "Subversion repository"
50 AuthUserFile /path/to/htpasswd/file
52 AuthzSVNAccessFile /path/to/access/file
54 # The following line will allow to fall back to authenticated
55 # access when anonymous fails.
60 C. Example 3: Authenticated access only
62 This configuration requires everyone accessing the repository to be
67 SVNPath /path/to/repos
70 AuthName "Subversion repository"
71 AuthUserFile /path/to/htpasswd/file
73 AuthzSVNAccessFile /path/to/access/file
78 NOTE: Because there is no 'Satisfy Any' line, the module acts as if
79 though AuthzSVNAnonymous was set to 'No'. The AuthzSVNAnonymous
80 directive prevents the anonymous access check from being run.
83 2. Specifying permissions
85 The file format of the access file looks like this:
88 <groupname> = <user>[,<user>...]
91 [<path in repository>]
96 [<repository name>:<path in repository>]
101 An example (line continued lines are supposed to be on one line):
104 subversion = jimb,sussman,kfogel,gstein,brane,joe,ghudson,fitz, \
105 daniel,cmpilato,kevin,philip,jerenkrantz,rooneg, \
106 bcollins,blair,striker,naked,dwhedon,dlr,kraai,mbk, \
108 subversion-doc = nsd,zbrown,fmatias,dimentiy,patrick
109 subversion-bindings = xela,yoshiki,morten,jespersm,knacke
110 subversion-rm = mprice
111 ...and so on and so on...
114 # Allow everyone read on the entire repository
116 # Allow devs with blanket commit to write to the entire repository
122 [/trunk/subversion/bindings]
123 @subversion-bindings = rw
131 [/branches/issue-650-ssl-certs]
134 [/branches/pluggable-db]
140 # Just for demonstration
144 # In case of SVNParentPath we can specify which repository we are
145 # referring to. If no matching repository qualified section is found,
146 # the general unqualified section is tried.
148 # NOTE: This will work in the case of using SVNPath as well, only the
149 # repository name (the last element of the url) will always be the