1 package org.mortbay.jetty.handler.rewrite;
2
3 import java.io.IOException;
4
5 import javax.servlet.http.HttpServletRequest;
6 import javax.servlet.http.HttpServletResponse;
7
8
9
10
11
12 public abstract class HeaderRule extends Rule
13 {
14 private String _header;
15 private String _headerValue;
16
17
18 public String getHeader()
19 {
20 return _header;
21 }
22
23
24
25
26
27
28 public void setHeader(String header)
29 {
30 _header = header;
31 }
32
33
34 public String getHeaderValue()
35 {
36 return _headerValue;
37 }
38
39
40
41
42
43
44
45 public void setHeaderValue(String headerValue)
46 {
47 _headerValue = headerValue;
48 }
49
50
51 @Override
52 public String matchAndApply(String target, HttpServletRequest request,
53 HttpServletResponse response) throws IOException
54 {
55 String requestHeaderValue = request.getHeader(_header);
56
57 if (requestHeaderValue != null)
58 if (_headerValue == null || _headerValue.equals(requestHeaderValue))
59 apply(target, requestHeaderValue, request, response);
60
61 return null;
62 }
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 protected abstract String apply(String target, String value, HttpServletRequest request, HttpServletResponse response) throws IOException;
82
83
84 public String toString()
85 {
86 return super.toString() + "[" + _header + ":" + _headerValue + "]";
87 }
88
89 }