1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.util;
19
20 import org.mortbay.jetty.security.Constraint;
21 import org.mortbay.jetty.security.ConstraintMapping;
22 import org.mortbay.jetty.security.SecurityHandler;
23 import org.mortbay.jetty.servlet.Context;
24
25
26
27
28 public class HttpServerUtil {
29
30
31
32
33
34 public static void constrainHttpMethods(Context context, boolean allowOptionsMethod) {
35 Constraint c = new Constraint();
36 c.setAuthenticate(true);
37
38 ConstraintMapping cmt = new ConstraintMapping();
39 cmt.setConstraint(c);
40 cmt.setMethod("TRACE");
41 cmt.setPathSpec("/*");
42
43 SecurityHandler sh = new SecurityHandler();
44
45 if (!allowOptionsMethod) {
46 ConstraintMapping cmo = new ConstraintMapping();
47 cmo.setConstraint(c);
48 cmo.setMethod("OPTIONS");
49 cmo.setPathSpec("/*");
50 sh.setConstraintMappings(new ConstraintMapping[] { cmt, cmo });
51 } else {
52 sh.setConstraintMappings(new ConstraintMapping[] { cmt });
53 }
54
55 context.addHandler(sh);
56 }
57 }