Fix compiler warning due to missing function prototype.
[svn.git] / contrib / server-side / mod_dontdothat / README
blob13f87f0415a2d32721fa5a88fd29eeeb202aae09
1 mod_dontdothat is an Apache module that allows you to block specific types
2 of Subversion requests.  Specifically, it's designed to keep users from doing
3 things that are particularly hard on the server, like checking out the root
4 of the tree, or the tags or branches directories.  It works by sticking an
5 input filter in front of all REPORT requests and looking for dangerous types
6 of requests.  If it finds any, it returns a 403 Forbidden error.
8 You can compile and install it via apxs:
10 $ apxs -c \
11        -I$PREFIX/include/subversion-1 \
12        -L$PREFIX/lib -lsvn_subr-1 
13        mod_dontdothat.c
15 $ apxs -i -n dontdothat mod_dontdothat.la
17 It is enabled via single httpd.conf directive, DontDoThatConfigFile:
19 <Location /svn>
20   DAV svn
21   SVNParentPath /path/to/repositories
22   DontDoThatConfigFile /path/to/config.file
23   DontDoThatDisallowReplay off
24 </Location>
26 The file you give to DontDoThatConfigFile is a Subversion configuration file
27 that contains the following sections.
29 [recursive-actions]
30 /*/trunk = allow
31 / = deny
32 /* = deny
33 /*/tags = deny
34 /*/branches = deny
35 /*/* = deny
36 /*/*/tags = deny
37 /*/*/branches = deny
39 As you might guess, this defines a set of patterns that control what the
40 user is not allowed to do.  Anything with a 'deny' after it is denied, and
41 as a fallback mechanism anything with an 'allow' after it is special cased
42 to be allowed, even if it matches something that is denied.
44 Note that the wildcard portions of a rule only swallow a single directory,
45 so /* will match /foo, but not /foo/bar.  They also must be at the end of
46 a directory segment, so /foo* or /* are valid, but /*foo is not.
48 These rules are applied to any recursive action, which basically means any
49 Subversion command that goes through the update-report, like update, diff,
50 checkout, merge, etc.
52 The DontDoThatDisallowReplay option makes mod_dontdothat disallow
53 replay requests, which is on by default.