James Moger
2012-11-01 7ba85bfa11c7fcab21ada61650fe30763aafd7b0
commit | author | age
8c9a20 1 /*
JM 2  * Copyright 2011 gitblit.com.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.gitblit;
17
18 import java.io.BufferedReader;
19 import java.io.IOException;
20 import java.io.UnsupportedEncodingException;
21 import java.security.Principal;
bd9800 22 import java.util.Collection;
8c9a20 23 import java.util.Enumeration;
JM 24 import java.util.Locale;
25 import java.util.Map;
26
bd9800 27 import javax.servlet.AsyncContext;
JM 28 import javax.servlet.DispatcherType;
8c9a20 29 import javax.servlet.RequestDispatcher;
bd9800 30 import javax.servlet.ServletContext;
JM 31 import javax.servlet.ServletException;
8c9a20 32 import javax.servlet.ServletInputStream;
bd9800 33 import javax.servlet.ServletRequest;
JM 34 import javax.servlet.ServletResponse;
8c9a20 35 import javax.servlet.http.Cookie;
JM 36 import javax.servlet.http.HttpServletRequest;
bd9800 37 import javax.servlet.http.HttpServletResponse;
8c9a20 38 import javax.servlet.http.HttpSession;
bd9800 39 import javax.servlet.http.Part;
8c9a20 40
892570 41 /**
JM 42  * ServletRequestWrapper is a pass-through/delegate wrapper class for a servlet
43  * request. This class is used in conjunction with ServletFilters, such as the
44  * AccessRestrictionFilter.
45  * 
46  * The original request is wrapped by instances of this class and this class is
47  * set as the servlet request in the filter. This allows for specialized
48  * implementations of request methods, like getUserPrincipal() with delegation
49  * to the original request for any method not overridden.
50  * 
51  * This class, by itself, is not altogether interesting. Subclasses of this
52  * class, however, are of interest.
53  * 
54  * @author James Moger
55  * 
56  */
8c9a20 57 public abstract class ServletRequestWrapper implements HttpServletRequest {
JM 58
59     protected final HttpServletRequest req;
60
61     public ServletRequestWrapper(HttpServletRequest req) {
62         this.req = req;
63     }
64
65     @Override
66     public Object getAttribute(String name) {
67         return req.getAttribute(name);
68     }
69
70     @Override
71     public Enumeration getAttributeNames() {
72         return req.getAttributeNames();
73     }
74
75     @Override
76     public String getCharacterEncoding() {
77         return req.getCharacterEncoding();
78     }
79
80     @Override
81     public void setCharacterEncoding(String env) throws UnsupportedEncodingException {
82         req.setCharacterEncoding(env);
83     }
84
85     @Override
86     public int getContentLength() {
87         return req.getContentLength();
88     }
89
90     @Override
91     public String getContentType() {
92         return req.getContentType();
93     }
94
95     @Override
96     public ServletInputStream getInputStream() throws IOException {
97         return req.getInputStream();
98     }
99
100     @Override
101     public String getParameter(String name) {
102         return req.getParameter(name);
103     }
104
105     @Override
106     public Enumeration getParameterNames() {
107         return req.getParameterNames();
108     }
109
110     @Override
111     public String[] getParameterValues(String name) {
112         return req.getParameterValues(name);
113     }
114
115     @Override
116     public Map getParameterMap() {
117         return req.getParameterMap();
118     }
119
120     @Override
121     public String getProtocol() {
122         return req.getProtocol();
123     }
124
125     @Override
126     public String getScheme() {
127         return req.getScheme();
128     }
129
130     @Override
131     public String getServerName() {
132         return req.getServerName();
133     }
134
135     @Override
136     public int getServerPort() {
137         return req.getServerPort();
138     }
139
140     @Override
141     public BufferedReader getReader() throws IOException {
142         return req.getReader();
143     }
144
145     @Override
146     public String getRemoteAddr() {
147         return req.getRemoteAddr();
148     }
149
150     @Override
151     public String getRemoteHost() {
152         return req.getRemoteHost();
153     }
154
155     @Override
156     public void setAttribute(String name, Object o) {
157         req.setAttribute(name, o);
158     }
159
160     @Override
161     public void removeAttribute(String name) {
162         req.removeAttribute(name);
163     }
164
165     @Override
166     public Locale getLocale() {
167         return req.getLocale();
168     }
169
170     @Override
171     public Enumeration getLocales() {
172         return req.getLocales();
173     }
174
175     @Override
176     public boolean isSecure() {
177         return req.isSecure();
178     }
179
180     @Override
181     public RequestDispatcher getRequestDispatcher(String path) {
182         return req.getRequestDispatcher(path);
183     }
184
185     @Override
186     @Deprecated
187     public String getRealPath(String path) {
188         return req.getRealPath(path);
189     }
190
191     @Override
192     public int getRemotePort() {
193         return req.getRemotePort();
194     }
195
196     @Override
197     public String getLocalName() {
198         return req.getLocalName();
199     }
200
201     @Override
202     public String getLocalAddr() {
203         return req.getLocalAddr();
204     }
205
206     @Override
207     public int getLocalPort() {
208         return req.getLocalPort();
209     }
210
211     @Override
212     public String getAuthType() {
213         return req.getAuthType();
214     }
215
216     @Override
217     public Cookie[] getCookies() {
218         return req.getCookies();
219     }
220
221     @Override
222     public long getDateHeader(String name) {
223         return req.getDateHeader(name);
224     }
225
226     @Override
227     public String getHeader(String name) {
228         return req.getHeader(name);
229     }
230
231     @Override
232     public Enumeration getHeaders(String name) {
233         return req.getHeaders(name);
234     }
235
236     @Override
237     public Enumeration getHeaderNames() {
238         return req.getHeaderNames();
239     }
240
241     @Override
242     public int getIntHeader(String name) {
243         return req.getIntHeader(name);
244     }
245
246     @Override
247     public String getMethod() {
248         return req.getMethod();
249     }
250
251     @Override
252     public String getPathInfo() {
253         return req.getPathInfo();
254     }
255
256     @Override
257     public String getPathTranslated() {
258         return req.getPathTranslated();
259     }
260
261     @Override
262     public String getContextPath() {
263         return req.getContextPath();
264     }
265
266     @Override
267     public String getQueryString() {
268         return req.getQueryString();
269     }
270
271     @Override
272     public String getRemoteUser() {
273         return req.getRemoteUser();
274     }
275
276     @Override
277     public boolean isUserInRole(String role) {
278         return req.isUserInRole(role);
279     }
280
281     @Override
282     public Principal getUserPrincipal() {
283         return req.getUserPrincipal();
284     }
285
286     @Override
287     public String getRequestedSessionId() {
288         return req.getRequestedSessionId();
289     }
290
291     @Override
292     public String getRequestURI() {
293         return req.getRequestURI();
294     }
295
296     @Override
297     public StringBuffer getRequestURL() {
298         return req.getRequestURL();
299     }
300
301     @Override
302     public String getServletPath() {
303         return req.getServletPath();
304     }
305
306     @Override
307     public HttpSession getSession(boolean create) {
308         return req.getSession(create);
309     }
310
311     @Override
312     public HttpSession getSession() {
313         return req.getSession();
314     }
315
316     @Override
317     public boolean isRequestedSessionIdValid() {
318         return req.isRequestedSessionIdValid();
319     }
320
321     @Override
322     public boolean isRequestedSessionIdFromCookie() {
323         return req.isRequestedSessionIdFromCookie();
324     }
325
326     @Override
327     public boolean isRequestedSessionIdFromURL() {
328         return req.isRequestedSessionIdFromURL();
329     }
330
331     @Override
332     @Deprecated
333     public boolean isRequestedSessionIdFromUrl() {
334         return req.isRequestedSessionIdFromUrl();
335     }
bd9800 336     
JM 337     /*
338      * Servlet 3.0 Methods 
339      */
340     
341     @Override
342     public boolean authenticate(HttpServletResponse response) throws IOException, ServletException {
343         return false;
344     }
345     
346     @Override
347     public void login(String username, String password) throws ServletException {
348     }
349
350     @Override
351     public void logout() throws ServletException {
352     }
353
354         
355     @Override
356     public Part getPart(String arg0) throws IOException, ServletException {
357         return req.getPart(arg0);
358     }
359
360     @Override
361     public Collection<Part> getParts() throws IOException, ServletException {
362         return req.getParts();
363     }
364
365     @Override
366     public AsyncContext getAsyncContext() {
367         return req.getAsyncContext();
368     }
369
370     @Override
371     public DispatcherType getDispatcherType() {
372         return req.getDispatcherType();
373     }
374
375     @Override
376     public ServletContext getServletContext() {
377         return req.getServletContext();
378     }
379
380     @Override
381     public boolean isAsyncStarted() {
382         return req.isAsyncStarted();
383     }
384
385     @Override
386     public boolean isAsyncSupported() {
387         return req.isAsyncStarted();
388     }
389
390     @Override
391     public AsyncContext startAsync() throws IllegalStateException {
392         return req.startAsync();
393     }
394
395     @Override
396     public AsyncContext startAsync(ServletRequest arg0, ServletResponse arg1)
397             throws IllegalStateException {
398         return req.startAsync(arg0, arg1);
399     }
8c9a20 400 }