001: /*
002: * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpRequestWrapper.java,v 1.3 2002/03/18 07:15:39 remm Exp $
003: * $Revision: 1.3 $
004: * $Date: 2002/03/18 07:15:39 $
005: *
006: * ====================================================================
007: *
008: * The Apache Software License, Version 1.1
009: *
010: * Copyright (c) 1999 The Apache Software Foundation. All rights
011: * reserved.
012: *
013: * Redistribution and use in source and binary forms, with or without
014: * modification, are permitted provided that the following conditions
015: * are met:
016: *
017: * 1. Redistributions of source code must retain the above copyright
018: * notice, this list of conditions and the following disclaimer.
019: *
020: * 2. Redistributions in binary form must reproduce the above copyright
021: * notice, this list of conditions and the following disclaimer in
022: * the documentation and/or other materials provided with the
023: * distribution.
024: *
025: * 3. The end-user documentation included with the redistribution, if
026: * any, must include the following acknowlegement:
027: * "This product includes software developed by the
028: * Apache Software Foundation (http://www.apache.org/)."
029: * Alternately, this acknowlegement may appear in the software itself,
030: * if and wherever such third-party acknowlegements normally appear.
031: *
032: * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
033: * Foundation" must not be used to endorse or promote products derived
034: * from this software without prior written permission. For written
035: * permission, please contact apache@apache.org.
036: *
037: * 5. Products derived from this software may not be called "Apache"
038: * nor may "Apache" appear in their names without prior written
039: * permission of the Apache Group.
040: *
041: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
042: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
043: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
044: * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
045: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
046: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
047: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
048: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
049: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
050: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
051: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
052: * SUCH DAMAGE.
053: * ====================================================================
054: *
055: * This software consists of voluntary contributions made by many
056: * individuals on behalf of the Apache Software Foundation. For more
057: * information on the Apache Software Foundation, please see
058: * <http://www.apache.org/>.
059: *
060: * [Additional notices, if required by prior licensing conditions]
061: *
062: */
063:
064: package org.apache.catalina.connector;
065:
066: import java.security.Principal;
067: import java.util.Locale;
068: import javax.servlet.http.Cookie;
069: import org.apache.catalina.HttpRequest;
070:
071: /**
072: * Abstract convenience class that wraps a Catalina-internal <b>HttpRequest</b>
073: * object. By default, all methods are delegated to the wrapped request,
074: * but subclasses can override individual methods as required to provide the
075: * functionality that they require.
076: *
077: * @author Craig R. McClanahan
078: * @version $Revision: 1.3 $ $Date: 2002/03/18 07:15:39 $
079: * @deprecated
080: */
081:
082: public abstract class HttpRequestWrapper extends RequestWrapper
083: implements HttpRequest {
084:
085: // ----------------------------------------------------------- Constructors
086:
087: /**
088: * Construct a wrapper for the specified request.
089: *
090: * @param request The request to be wrapped
091: */
092: public HttpRequestWrapper(HttpRequest request) {
093:
094: super (request);
095:
096: }
097:
098: // --------------------------------------------------------- Public Methods
099:
100: /**
101: * Add a Cookie to the set of Cookies associated with this Request.
102: *
103: * @param cookie The new cookie
104: */
105: public void addCookie(Cookie cookie) {
106:
107: ((HttpRequest) request).addCookie(cookie);
108:
109: }
110:
111: /**
112: * Add a Header to the set of Headers associated with this Request.
113: *
114: * @param name The new header name
115: * @param value The new header value
116: */
117: public void addHeader(String name, String value) {
118:
119: ((HttpRequest) request).addHeader(name, value);
120:
121: }
122:
123: /**
124: * Add a Locale to the set of preferred Locales for this Request. The
125: * first added Locale will be the first one returned by getLocales().
126: *
127: * @param locale The new preferred Locale
128: */
129: public void addLocale(Locale locale) {
130:
131: ((HttpRequest) request).addLocale(locale);
132:
133: }
134:
135: /**
136: * Clear the collection of Cookies associated with this Request.
137: */
138: public void clearCookies() {
139:
140: ((HttpRequest) request).clearCookies();
141:
142: }
143:
144: /**
145: * Clear the collection of Headers associated with this Request.
146: */
147: public void clearHeaders() {
148:
149: ((HttpRequest) request).clearHeaders();
150:
151: }
152:
153: /**
154: * Clear the collection of Locales associated with this Request.
155: */
156: public void clearLocales() {
157:
158: ((HttpRequest) request).clearLocales();
159:
160: }
161:
162: /**
163: * Set the authentication type used for this request, if any; otherwise
164: * set the type to <code>null</code>. Typical values are "BASIC",
165: * "DIGEST", or "SSL".
166: *
167: * @param type The authentication type used
168: */
169: public void setAuthType(String type) {
170:
171: ((HttpRequest) request).setAuthType(type);
172:
173: }
174:
175: /**
176: * Set the context path for this Request. This will normally be called
177: * when the associated Context is mapping the Request to a particular
178: * Wrapper.
179: *
180: * @param path The context path
181: */
182: public void setContextPath(String path) {
183:
184: ((HttpRequest) request).setContextPath(path);
185:
186: }
187:
188: /**
189: * Set the HTTP request method used for this Request.
190: *
191: * @param method The request method
192: */
193: public void setMethod(String method) {
194:
195: ((HttpRequest) request).setMethod(method);
196:
197: }
198:
199: /**
200: * Set the query string for this Request. This will normally be called
201: * by the HTTP Connector, when it parses the request headers.
202: *
203: * @param query The query string
204: */
205: public void setQueryString(String query) {
206:
207: ((HttpRequest) request).setQueryString(query);
208:
209: }
210:
211: /**
212: * Set the path information for this Request. This will normally be called
213: * when the associated Context is mapping the Request to a particular
214: * Wrapper.
215: *
216: * @param path The path information
217: */
218: public void setPathInfo(String path) {
219:
220: ((HttpRequest) request).setPathInfo(path);
221:
222: }
223:
224: /**
225: * Set a flag indicating whether or not the requested session ID for this
226: * request came in through a cookie. This is normally called by the
227: * HTTP Connector, when it parses the request headers.
228: *
229: * @param flag The new flag
230: */
231: public void setRequestedSessionCookie(boolean flag) {
232:
233: ((HttpRequest) request).setRequestedSessionCookie(flag);
234:
235: }
236:
237: /**
238: * Set the requested session ID for this request. This is normally called
239: * by the HTTP Connector, when it parses the request headers.
240: *
241: * @param id The new session id
242: */
243: public void setRequestedSessionId(String id) {
244:
245: ((HttpRequest) request).setRequestedSessionId(id);
246:
247: }
248:
249: /**
250: * Set a flag indicating whether or not the requested session ID for this
251: * request came in through a URL. This is normally called by the
252: * HTTP Connector, when it parses the request headers.
253: *
254: * @param flag The new flag
255: */
256: public void setRequestedSessionURL(boolean flag) {
257:
258: ((HttpRequest) request).setRequestedSessionURL(flag);
259:
260: }
261:
262: /**
263: * Set the unparsed request URI for this Request. This will normally be
264: * called by the HTTP Connector, when it parses the request headers.
265: *
266: * @param uri The request URI
267: */
268: public void setRequestURI(String uri) {
269:
270: ((HttpRequest) request).setRequestURI(uri);
271:
272: }
273:
274: /**
275: * Set the servlet path for this Request. This will normally be called
276: * when the associated Context is mapping the Request to a particular
277: * Wrapper.
278: *
279: * @param path The servlet path
280: */
281: public void setServletPath(String path) {
282:
283: ((HttpRequest) request).setServletPath(path);
284:
285: }
286:
287: /**
288: * Set the Principal who has been authenticated for this Request. This
289: * value is also used to calculate the value to be returned by the
290: * <code>getRemoteUser()</code> method.
291: *
292: * @param principal The user Principal
293: */
294: public void setUserPrincipal(Principal principal) {
295:
296: ((HttpRequest) request).setUserPrincipal(principal);
297:
298: }
299:
300: }
|