diff options
-rw-r--r-- | jetty-server/src/main/java/org/eclipse/jetty/server/Request.java | 1065 |
1 files changed, 535 insertions, 530 deletions
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/Request.java b/jetty-server/src/main/java/org/eclipse/jetty/server/Request.java index 4fc8c5934d..7a54b62706 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/Request.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/Request.java @@ -4,11 +4,11 @@ // All rights reserved. This program and the accompanying materials // are made available under the terms of the Eclipse Public License v1.0 // and Apache License v2.0 which accompanies this distribution. -// The Eclipse Public License is available at +// The Eclipse Public License is available at // http://www.eclipse.org/legal/epl-v10.html // The Apache License v2.0 is available at // http://www.opensource.org/licenses/apache2.0.php -// You may elect to redistribute this code under either of these licenses. +// You may elect to redistribute this code under either of these licenses. // ======================================================================== package org.eclipse.jetty.server; @@ -72,62 +72,55 @@ import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; /* ------------------------------------------------------------ */ -/** Jetty Request. +/** + * Jetty Request. * <p> * Implements {@link javax.servlet.http.HttpServletRequest} from the <code>javax.servlet.http</code> package. * </p> * <p> - * The standard interface of mostly getters, - * is extended with setters so that the request is mutable by the handlers that it is - * passed to. This allows the request object to be as lightweight as possible and not - * actually implement any significant behavior. For example<ul> - * - * <li>The {@link Request#getContextPath()} method will return null, until the request has been - * passed to a {@link ContextHandler} which matches the {@link Request#getPathInfo()} with a context - * path and calls {@link Request#setContextPath(String)} as a result.</li> - * - * <li>the HTTP session methods - * will all return null sessions until such time as a request has been passed to - * a {@link org.eclipse.jetty.server.session.SessionHandler} which checks for session cookies - * and enables the ability to create new sessions.</li> - * - * <li>The {@link Request#getServletPath()} method will return null until the request has been - * passed to a <code>org.eclipse.jetty.servlet.ServletHandler</code> and the pathInfo matched - * against the servlet URL patterns and {@link Request#setServletPath(String)} called as a result.</li> + * The standard interface of mostly getters, is extended with setters so that the request is mutable by the handlers that it is passed to. This allows the + * request object to be as lightweight as possible and not actually implement any significant behavior. For example + * <ul> + * + * <li>The {@link Request#getContextPath()} method will return null, until the request has been passed to a {@link ContextHandler} which matches the + * {@link Request#getPathInfo()} with a context path and calls {@link Request#setContextPath(String)} as a result.</li> + * + * <li>the HTTP session methods will all return null sessions until such time as a request has been passed to a + * {@link org.eclipse.jetty.server.session.SessionHandler} which checks for session cookies and enables the ability to create new sessions.</li> + * + * <li>The {@link Request#getServletPath()} method will return null until the request has been passed to a <code>org.eclipse.jetty.servlet.ServletHandler</code> + * and the pathInfo matched against the servlet URL patterns and {@link Request#setServletPath(String)} called as a result.</li> * </ul> - * - * A request instance is created for each {@link AbstractHttpConnection} accepted by the server - * and recycled for each HTTP request received via that connection. An effort is made - * to avoid reparsing headers and cookies that are likely to be the same for - * requests from the same connection. - * + * + * A request instance is created for each {@link AbstractHttpConnection} accepted by the server and recycled for each HTTP request received via that connection. + * An effort is made to avoid reparsing headers and cookies that are likely to be the same for requests from the same connection. + * * <p> - * The form content that a request can process is limited to protect from Denial of Service - * attacks. The size in bytes is limited by {@link ContextHandler#getMaxFormContentSize()} or if there is no - * context then the "org.eclipse.jetty.server.Request.maxFormContentSize" {@link Server} attribute. - * The number of parameters keys is limited by {@link ContextHandler#getMaxFormKeys()} or if there is no - * context then the "org.eclipse.jetty.server.Request.maxFormKeys" {@link Server} attribute. - * - * + * The form content that a request can process is limited to protect from Denial of Service attacks. The size in bytes is limited by + * {@link ContextHandler#getMaxFormContentSize()} or if there is no context then the "org.eclipse.jetty.server.Request.maxFormContentSize" {@link Server} + * attribute. The number of parameters keys is limited by {@link ContextHandler#getMaxFormKeys()} or if there is no context then the + * "org.eclipse.jetty.server.Request.maxFormKeys" {@link Server} attribute. + * + * */ public class Request implements HttpServletRequest { private static final Logger LOG = Log.getLogger(Request.class); - private static final String __ASYNC_FWD="org.eclipse.asyncfwd"; + private static final String __ASYNC_FWD = "org.eclipse.asyncfwd"; private static final Collection __defaultLocale = Collections.singleton(Locale.getDefault()); - private static final int __NONE=0, _STREAM=1, __READER=2; + private static final int __NONE = 0, _STREAM = 1, __READER = 2; /* ------------------------------------------------------------ */ public static Request getRequest(HttpServletRequest request) { if (request instanceof Request) - return (Request) request; + return (Request)request; return AbstractHttpConnection.getCurrentConnection().getRequest(); } protected final AsyncContinuation _async = new AsyncContinuation(); - private boolean _asyncSupported=true; + private boolean _asyncSupported = true; private volatile Attributes _attributes; private Authentication _authentication; private MultiMap<String> _baseParameters; @@ -137,18 +130,18 @@ public class Request implements HttpServletRequest private boolean _newContext; private String _contextPath; private CookieCutter _cookies; - private boolean _cookiesExtracted=false; + private boolean _cookiesExtracted = false; private DispatcherType _dispatcherType; - private boolean _dns=false; + private boolean _dns = false; private EndPoint _endp; - private boolean _handled =false; - private int _inputState=__NONE; + private boolean _handled = false; + private int _inputState = __NONE; private String _method; private MultiMap<String> _parameters; private boolean _paramsExtracted; private String _pathInfo; private int _port; - private String _protocol=HttpVersions.HTTP_1_1; + private String _protocol = HttpVersions.HTTP_1_1; private String _queryEncoding; private String _queryString; private BufferedReader _reader; @@ -157,10 +150,10 @@ public class Request implements HttpServletRequest private String _remoteHost; private Object _requestAttributeListeners; private String _requestedSessionId; - private boolean _requestedSessionIdFromCookie=false; + private boolean _requestedSessionIdFromCookie = false; private String _requestURI; - private Map<Object,HttpSession> _savedNewSessions; - private String _scheme=URIUtil.HTTP; + private Map<Object, HttpSession> _savedNewSessions; + private String _scheme = URIUtil.HTTP; private UserIdentity.Scope _scope; private String _serverName; private String _servletPath; @@ -168,10 +161,10 @@ public class Request implements HttpServletRequest private SessionManager _sessionManager; private long _timeStamp; private long _dispatchTime; - + private Buffer _timeStampBuffer; private HttpURI _uri; - + /* ------------------------------------------------------------ */ public Request() { @@ -184,10 +177,10 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - public void addEventListener(final EventListener listener) + public void addEventListener(final EventListener listener) { if (listener instanceof ServletRequestAttributeListener) - _requestAttributeListeners= LazyList.add(_requestAttributeListeners, listener); + _requestAttributeListeners = LazyList.add(_requestAttributeListeners,listener); if (listener instanceof ContinuationListener) throw new IllegalArgumentException(); } @@ -198,13 +191,13 @@ public class Request implements HttpServletRequest */ public void extractParameters() { - if (_baseParameters == null) + if (_baseParameters == null) _baseParameters = new MultiMap(16); - if (_paramsExtracted) + if (_paramsExtracted) { - if (_parameters==null) - _parameters=_baseParameters; + if (_parameters == null) + _parameters = _baseParameters; return; } @@ -213,9 +206,9 @@ public class Request implements HttpServletRequest try { // Handle query string - if (_uri!=null && _uri.hasQuery()) + if (_uri != null && _uri.hasQuery()) { - if (_queryEncoding==null) + if (_queryEncoding == null) _uri.decodeQueryTo(_baseParameters); else { @@ -238,40 +231,41 @@ public class Request implements HttpServletRequest String content_type = getContentType(); if (content_type != null && content_type.length() > 0) { - content_type = HttpFields.valueParameters(content_type, null); - - if (MimeTypes.FORM_ENCODED.equalsIgnoreCase(content_type) && _inputState==__NONE && - (HttpMethods.POST.equals(getMethod()) || HttpMethods.PUT.equals(getMethod()))) + content_type = HttpFields.valueParameters(content_type,null); + + if (MimeTypes.FORM_ENCODED.equalsIgnoreCase(content_type) && _inputState == __NONE + && (HttpMethods.POST.equals(getMethod()) || HttpMethods.PUT.equals(getMethod()))) { int content_length = getContentLength(); if (content_length != 0) { try { - int maxFormContentSize=-1; - int maxFormKeys=-1; + int maxFormContentSize = -1; + int maxFormKeys = -1; - if (_context!=null) + if (_context != null) { - maxFormContentSize=_context.getContextHandler().getMaxFormContentSize(); - maxFormKeys=_context.getContextHandler().getMaxFormKeys(); + maxFormContentSize = _context.getContextHandler().getMaxFormContentSize(); + maxFormKeys = _context.getContextHandler().getMaxFormKeys(); } else { - Number size = (Number)_connection.getConnector().getServer().getAttribute("org.eclipse.jetty.server.Request.maxFormContentSize"); - maxFormContentSize=size==null?200000:size.intValue(); + Number size = (Number)_connection.getConnector().getServer() + .getAttribute("org.eclipse.jetty.server.Request.maxFormContentSize"); + maxFormContentSize = size == null?200000:size.intValue(); Number keys = (Number)_connection.getConnector().getServer().getAttribute("org.eclipse.jetty.server.Request.maxFormKeys"); - maxFormKeys =keys==null?1000:keys.intValue(); + maxFormKeys = keys == null?1000:keys.intValue(); } - - if (content_length>maxFormContentSize && maxFormContentSize > 0) + + if (content_length > maxFormContentSize && maxFormContentSize > 0) { - throw new IllegalStateException("Form too large"+content_length+">"+maxFormContentSize); + throw new IllegalStateException("Form too large" + content_length + ">" + maxFormContentSize); } InputStream in = getInputStream(); // Add form params to query params - UrlEncoded.decodeTo(in, _baseParameters, encoding,content_length<0?maxFormContentSize:-1,maxFormKeys); + UrlEncoded.decodeTo(in,_baseParameters,encoding,content_length < 0?maxFormContentSize:-1,maxFormKeys); } catch (IOException e) { @@ -284,31 +278,30 @@ public class Request implements HttpServletRequest } } - if (_parameters==null) - _parameters=_baseParameters; - else if (_parameters!=_baseParameters) + if (_parameters == null) + _parameters = _baseParameters; + else if (_parameters != _baseParameters) { // Merge parameters (needed if parameters extracted after a forward). Iterator iter = _baseParameters.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry)iter.next(); - String name=(String)entry.getKey(); - Object values=entry.getValue(); - for (int i=0;i<LazyList.size(values);i++) - _parameters.add(name, LazyList.get(values, i)); + String name = (String)entry.getKey(); + Object values = entry.getValue(); + for (int i = 0; i < LazyList.size(values); i++) + _parameters.add(name,LazyList.get(values,i)); } - } + } } finally { - //ensure params always set (even if empty) after extraction - if (_parameters==null) - _parameters=_baseParameters; + // ensure params always set (even if empty) after extraction + if (_parameters == null) + _parameters = _baseParameters; } } - /* ------------------------------------------------------------ */ public AsyncContext getAsyncContext() { @@ -324,44 +317,46 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getAttribute(java.lang.String) */ public Object getAttribute(String name) { if ("org.eclipse.jetty.io.EndPoint.maxIdleTime".equalsIgnoreCase(name)) return new Long(getConnection().getEndPoint().getMaxIdleTime()); - - Object attr=(_attributes==null)?null:_attributes.getAttribute(name); - if (attr==null && Continuation.ATTRIBUTE.equals(name)) + + Object attr = (_attributes == null)?null:_attributes.getAttribute(name); + if (attr == null && Continuation.ATTRIBUTE.equals(name)) return _async; return attr; } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getAttributeNames() */ public Enumeration getAttributeNames() { - if (_attributes==null) + if (_attributes == null) return Collections.enumeration(Collections.EMPTY_LIST); - + return AttributesMap.getAttributeNamesCopy(_attributes); } - + /* ------------------------------------------------------------ */ - /* + /* */ public Attributes getAttributes() { - if (_attributes==null) - _attributes=new AttributesMap(); + if (_attributes == null) + _attributes = new AttributesMap(); return _attributes; } /* ------------------------------------------------------------ */ - /** Get the authentication. + /** + * Get the authentication. + * * @return the authentication */ public Authentication getAuthentication() @@ -370,21 +365,21 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getAuthType() */ public String getAuthType() { if (_authentication instanceof Authentication.Deferred) _authentication = ((Authentication.Deferred)_authentication).authenticate(this); - + if (_authentication instanceof Authentication.User) return ((Authentication.User)_authentication).getAuthMethod(); return null; } - + /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getCharacterEncoding() */ public String getCharacterEncoding() @@ -400,9 +395,9 @@ public class Request implements HttpServletRequest { return _connection; } - + /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getContentLength() */ public int getContentLength() @@ -412,14 +407,14 @@ public class Request implements HttpServletRequest public long getContentRead() { - if (_connection==null || _connection.getParser()==null) + if (_connection == null || _connection.getParser() == null) return -1; - + return ((HttpParser)_connection.getParser()).getContentRead(); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getContentType() */ public String getContentType() @@ -429,8 +424,7 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ /** - * @return The current {@link Context context} used for this request, or <code>null</code> if {@link #setContext} has not yet - * been called. + * @return The current {@link Context context} used for this request, or <code>null</code> if {@link #setContext} has not yet been called. */ public Context getContext() { @@ -438,7 +432,7 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getContextPath() */ public String getContextPath() @@ -447,23 +441,23 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getCookies() */ public Cookie[] getCookies() { - if (_cookiesExtracted) - return _cookies==null?null:_cookies.getCookies(); + if (_cookiesExtracted) + return _cookies == null?null:_cookies.getCookies(); _cookiesExtracted = true; - + Enumeration enm = _connection.getRequestFields().getValues(HttpHeaders.COOKIE_BUFFER); - + // Handle no cookies - if (enm!=null) + if (enm != null) { - if (_cookies==null) - _cookies=new CookieCutter(); + if (_cookies == null) + _cookies = new CookieCutter(); while (enm.hasMoreElements()) { @@ -472,11 +466,11 @@ public class Request implements HttpServletRequest } } - return _cookies==null?null:_cookies.getCookies(); + return _cookies == null?null:_cookies.getCookies(); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getDateHeader(java.lang.String) */ public long getDateHeader(String name) @@ -487,11 +481,11 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ public DispatcherType getDispatcherType() { - return _dispatcherType; + return _dispatcherType; } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getHeader(java.lang.String) */ public String getHeader(String name) @@ -500,7 +494,7 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getHeaderNames() */ public Enumeration getHeaderNames() @@ -509,13 +503,13 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getHeaders(java.lang.String) */ public Enumeration getHeaders(String name) { Enumeration e = _connection.getRequestFields().getValues(name); - if (e==null) + if (e == null) return Collections.enumeration(Collections.EMPTY_LIST); return e; } @@ -530,19 +524,19 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getInputStream() */ public ServletInputStream getInputStream() throws IOException { - if (_inputState!=__NONE && _inputState!=_STREAM) + if (_inputState != __NONE && _inputState != _STREAM) throw new IllegalStateException("READER"); - _inputState=_STREAM; + _inputState = _STREAM; return _connection.getInputStream(); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getIntHeader(java.lang.String) */ public int getIntHeader(String name) @@ -551,37 +545,37 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getLocalAddr() */ public String getLocalAddr() { - return _endp==null?null:_endp.getLocalAddr(); + return _endp == null?null:_endp.getLocalAddr(); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getLocale() */ public Locale getLocale() { - Enumeration enm = _connection.getRequestFields().getValues(HttpHeaders.ACCEPT_LANGUAGE, HttpFields.__separators); - + Enumeration enm = _connection.getRequestFields().getValues(HttpHeaders.ACCEPT_LANGUAGE,HttpFields.__separators); + // handle no locale if (enm == null || !enm.hasMoreElements()) return Locale.getDefault(); - + // sort the list in quality order List acceptLanguage = HttpFields.qualityList(enm); - if (acceptLanguage.size()==0) - return Locale.getDefault(); - - int size=acceptLanguage.size(); + if (acceptLanguage.size() == 0) + return Locale.getDefault(); - if (size>0) + int size = acceptLanguage.size(); + + if (size > 0) { String language = (String)acceptLanguage.get(0); - language=HttpFields.valueParameters(language,null); + language = HttpFields.valueParameters(language,null); String country = ""; int dash = language.indexOf('-'); if (dash > -1) @@ -591,38 +585,37 @@ public class Request implements HttpServletRequest } return new Locale(language,country); } - - return Locale.getDefault(); + + return Locale.getDefault(); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getLocales() */ public Enumeration getLocales() { - Enumeration enm = _connection.getRequestFields().getValues(HttpHeaders.ACCEPT_LANGUAGE, HttpFields.__separators); - + Enumeration enm = _connection.getRequestFields().getValues(HttpHeaders.ACCEPT_LANGUAGE,HttpFields.__separators); + // handle no locale if (enm == null || !enm.hasMoreElements()) return Collections.enumeration(__defaultLocale); - + // sort the list in quality order List acceptLanguage = HttpFields.qualityList(enm); - - if (acceptLanguage.size()==0) - return - Collections.enumeration(__defaultLocale); - + + if (acceptLanguage.size() == 0) + return Collections.enumeration(__defaultLocale); + Object langs = null; - int size=acceptLanguage.size(); - + int size = acceptLanguage.size(); + // convert to locals - for (int i=0; i<size; i++) + for (int i = 0; i < size; i++) { String language = (String)acceptLanguage.get(i); - language=HttpFields.valueParameters(language,null); + language = HttpFields.valueParameters(language,null); String country = ""; int dash = language.indexOf('-'); if (dash > -1) @@ -630,44 +623,44 @@ public class Request implements HttpServletRequest country = language.substring(dash + 1).trim(); language = language.substring(0,dash).trim(); } - langs=LazyList.ensureSize(langs,size); - langs=LazyList.add(langs,new Locale(language,country)); + langs = LazyList.ensureSize(langs,size); + langs = LazyList.add(langs,new Locale(language,country)); } - - if (LazyList.size(langs)==0) + + if (LazyList.size(langs) == 0) return Collections.enumeration(__defaultLocale); - + return Collections.enumeration(LazyList.getList(langs)); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getLocalName() */ public String getLocalName() { - if (_endp==null) + if (_endp == null) return null; if (_dns) return _endp.getLocalHost(); - + String local = _endp.getLocalAddr(); - if (local!=null && local.indexOf(':')>=0) - local="["+local+"]"; + if (local != null && local.indexOf(':') >= 0) + local = "[" + local + "]"; return local; } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getLocalPort() */ public int getLocalPort() { - return _endp==null?0:_endp.getLocalPort(); + return _endp == null?0:_endp.getLocalPort(); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getMethod() */ public String getMethod() @@ -676,35 +669,35 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getParameter(java.lang.String) */ public String getParameter(String name) { - if (!_paramsExtracted) + if (!_paramsExtracted) extractParameters(); - return (String) _parameters.getValue(name, 0); + return (String)_parameters.getValue(name,0); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getParameterMap() */ public Map getParameterMap() { - if (!_paramsExtracted) + if (!_paramsExtracted) extractParameters(); - + return Collections.unmodifiableMap(_parameters.toStringArrayMap()); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getParameterNames() */ public Enumeration getParameterNames() { - if (!_paramsExtracted) + if (!_paramsExtracted) extractParameters(); return Collections.enumeration(_parameters.keySet()); } @@ -719,21 +712,21 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getParameterValues(java.lang.String) */ public String[] getParameterValues(String name) { - if (!_paramsExtracted) + if (!_paramsExtracted) extractParameters(); List<Object> vals = _parameters.getValues(name); - if (vals==null) + if (vals == null) return null; - return (String[])vals.toArray(new String[vals.size()]); + return vals.toArray(new String[vals.size()]); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getPathInfo() */ public String getPathInfo() @@ -742,18 +735,18 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getPathTranslated() */ public String getPathTranslated() { - if (_pathInfo==null || _context==null) + if (_pathInfo == null || _context == null) return null; return _context.getRealPath(_pathInfo); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getProtocol() */ public String getProtocol() @@ -768,78 +761,78 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getQueryString() */ public String getQueryString() { - if (_queryString==null && _uri!=null) + if (_queryString == null && _uri != null) { - if (_queryEncoding==null) - _queryString=_uri.getQuery(); + if (_queryEncoding == null) + _queryString = _uri.getQuery(); else - _queryString=_uri.getQuery(_queryEncoding); + _queryString = _uri.getQuery(_queryEncoding); } return _queryString; } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getReader() */ public BufferedReader getReader() throws IOException { - if (_inputState!=__NONE && _inputState!=__READER) + if (_inputState != __NONE && _inputState != __READER) throw new IllegalStateException("STREAMED"); - if (_inputState==__READER) + if (_inputState == __READER) return _reader; - - String encoding=getCharacterEncoding(); - if (encoding==null) - encoding=StringUtil.__ISO_8859_1; - - if (_reader==null || !encoding.equalsIgnoreCase(_readerEncoding)) + + String encoding = getCharacterEncoding(); + if (encoding == null) + encoding = StringUtil.__ISO_8859_1; + + if (_reader == null || !encoding.equalsIgnoreCase(_readerEncoding)) { final ServletInputStream in = getInputStream(); - _readerEncoding=encoding; - _reader=new BufferedReader(new InputStreamReader(in,encoding)) + _readerEncoding = encoding; + _reader = new BufferedReader(new InputStreamReader(in,encoding)) { @Override public void close() throws IOException { in.close(); - } + } }; } - _inputState=__READER; + _inputState = __READER; return _reader; } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getRealPath(java.lang.String) */ public String getRealPath(String path) { - if (_context==null) + if (_context == null) return null; return _context.getRealPath(path); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getRemoteAddr() */ public String getRemoteAddr() { if (_remoteAddr != null) - return _remoteAddr; - return _endp==null?null:_endp.getRemoteAddr(); + return _remoteAddr; + return _endp == null?null:_endp.getRemoteAddr(); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getRemoteHost() */ public String getRemoteHost() @@ -850,58 +843,58 @@ public class Request implements HttpServletRequest { return _remoteHost; } - return _endp==null?null:_endp.getRemoteHost(); + return _endp == null?null:_endp.getRemoteHost(); } return getRemoteAddr(); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getRemotePort() */ public int getRemotePort() { - return _endp==null?0:_endp.getRemotePort(); + return _endp == null?0:_endp.getRemotePort(); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getRemoteUser() */ public String getRemoteUser() { Principal p = getUserPrincipal(); - if (p==null) + if (p == null) return null; return p.getName(); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getRequestDispatcher(java.lang.String) */ public RequestDispatcher getRequestDispatcher(String path) { - if (path == null || _context==null) + if (path == null || _context == null) return null; // handle relative path if (!path.startsWith("/")) { - String relTo=URIUtil.addPaths(_servletPath,_pathInfo); - int slash=relTo.lastIndexOf("/"); - if (slash>1) - relTo=relTo.substring(0,slash+1); + String relTo = URIUtil.addPaths(_servletPath,_pathInfo); + int slash = relTo.lastIndexOf("/"); + if (slash > 1) + relTo = relTo.substring(0,slash + 1); else - relTo="/"; - path=URIUtil.addPaths(relTo,path); + relTo = "/"; + path = URIUtil.addPaths(relTo,path); } - + return _context.getRequestDispatcher(path); } - + /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getRequestedSessionId() */ public String getRequestedSessionId() @@ -910,18 +903,18 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getRequestURI() */ public String getRequestURI() { - if (_requestURI==null && _uri!=null) - _requestURI=_uri.getPathAndParam(); + if (_requestURI == null && _uri != null) + _requestURI = _uri.getPathAndParam(); return _requestURI; } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getRequestURL() */ public StringBuffer getRequestURL() @@ -935,14 +928,12 @@ public class Request implements HttpServletRequest url.append(scheme); url.append("://"); url.append(getServerName()); - if (_port>0 && - ((scheme.equalsIgnoreCase(URIUtil.HTTP) && port != 80) || - (scheme.equalsIgnoreCase(URIUtil.HTTPS) && port != 443))) + if (_port > 0 && ((scheme.equalsIgnoreCase(URIUtil.HTTP) && port != 80) || (scheme.equalsIgnoreCase(URIUtil.HTTPS) && port != 443))) { url.append(':'); url.append(_port); } - + url.append(getRequestURI()); return url; } @@ -953,17 +944,16 @@ public class Request implements HttpServletRequest { return _connection._response; } - + /* ------------------------------------------------------------ */ /** - * Reconstructs the URL the client used to make the request. The returned URL contains a - * protocol, server name, port number, and, but it does not include a path. + * Reconstructs the URL the client used to make the request. The returned URL contains a protocol, server name, port number, and, but it does not include a + * path. * <p> - * Because this method returns a <code>StringBuffer</code>, not a string, you can modify the - * URL easily, for example, to append path and query parameters. - * + * Because this method returns a <code>StringBuffer</code>, not a string, you can modify the URL easily, for example, to append path and query parameters. + * * This method is useful for creating redirect messages and for reporting errors. - * + * * @return "scheme://host:port" */ public StringBuilder getRootURL() @@ -985,7 +975,7 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getScheme() */ public String getScheme() @@ -994,49 +984,48 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getServerName() */ public String getServerName() - { + { // Return already determined host - if (_serverName != null) + if (_serverName != null) return _serverName; - + if (_uri == null) throw new IllegalStateException("No uri"); // Return host from absolute URI _serverName = _uri.getHost(); _port = _uri.getPort(); - if (_serverName != null) + if (_serverName != null) return _serverName; // Return host from header field Buffer hostPort = _connection.getRequestFields().get(HttpHeaders.HOST_BUFFER); - if (hostPort!=null) + if (hostPort != null) { - loop: - for (int i=hostPort.putIndex();i-->hostPort.getIndex();) + loop: for (int i = hostPort.putIndex(); i-- > hostPort.getIndex();) { - char ch=(char)(0xff&hostPort.peek(i)); - switch(ch) + char ch = (char)(0xff & hostPort.peek(i)); + switch (ch) { case ']': break loop; case ':': - _serverName=BufferUtil.to8859_1_String(hostPort.peek(hostPort.getIndex(), i-hostPort.getIndex())); - _port=BufferUtil.toInt(hostPort.peek(i+1, hostPort.putIndex()-i-1)); + _serverName = BufferUtil.to8859_1_String(hostPort.peek(hostPort.getIndex(),i - hostPort.getIndex())); + _port = BufferUtil.toInt(hostPort.peek(i + 1,hostPort.putIndex() - i - 1)); return _serverName; } } - if (_serverName==null || _port<0) + if (_serverName == null || _port < 0) { - _serverName=BufferUtil.to8859_1_String(hostPort); + _serverName = BufferUtil.to8859_1_String(hostPort); _port = 0; } - + return _serverName; } @@ -1045,7 +1034,7 @@ public class Request implements HttpServletRequest { _serverName = getLocalName(); _port = getLocalPort(); - if (_serverName != null && !StringUtil.ALL_INTERFACES.equals(_serverName)) + if (_serverName != null && !StringUtil.ALL_INTERFACES.equals(_serverName)) return _serverName; } @@ -1062,26 +1051,26 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getServerPort() */ public int getServerPort() { - if (_port<=0) + if (_port <= 0) { - if (_serverName==null) + if (_serverName == null) getServerName(); - - if (_port<=0) + + if (_port <= 0) { - if (_serverName!=null && _uri!=null) + if (_serverName != null && _uri != null) _port = _uri.getPort(); else - _port = _endp==null?0:_endp.getLocalPort(); + _port = _endp == null?0:_endp.getLocalPort(); } } - - if (_port<=0) + + if (_port <= 0) { if (getScheme().equalsIgnoreCase(URIUtil.HTTPS)) return 443; @@ -1097,23 +1086,23 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* */ public String getServletName() { - if (_scope!=null) + if (_scope != null) return _scope.getName(); return null; } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getServletPath() */ public String getServletPath() { - if (_servletPath==null) - _servletPath=""; + if (_servletPath == null) + _servletPath = ""; return _servletPath; } @@ -1124,7 +1113,7 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getSession() */ public HttpSession getSession() @@ -1133,33 +1122,32 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getSession(boolean) */ public HttpSession getSession(boolean create) - { - if (_session != null ) + { + if (_session != null) { - if (_sessionManager!=null && !_sessionManager.isValid(_session)) - _session=null; + if (_sessionManager != null && !_sessionManager.isValid(_session)) + _session = null; else return _session; } - + if (!create) return null; - - if (_sessionManager==null) + + if (_sessionManager == null) throw new IllegalStateException("No SessionManager"); - _session=_sessionManager.newHttpSession(this); - HttpCookie cookie=_sessionManager.getSessionCookie(_session,getContextPath(),isSecure()); - if (cookie!=null) + _session = _sessionManager.newHttpSession(this); + HttpCookie cookie = _sessionManager.getSessionCookie(_session,getContextPath(),isSecure()); + if (cookie != null) _connection.getResponse().addCookie(cookie); - + return _session; } - /* ------------------------------------------------------------ */ /** @@ -1169,31 +1157,31 @@ public class Request implements HttpServletRequest { return _sessionManager; } - + /* ------------------------------------------------------------ */ /** * Get Request TimeStamp - * + * * @return The time that the request was received. */ public long getTimeStamp() { return _timeStamp; } - + /* ------------------------------------------------------------ */ /** * Get Request TimeStamp - * + * * @return The time that the request was received. */ public Buffer getTimeStampBuffer() { if (_timeStampBuffer == null && _timeStamp > 0) - _timeStampBuffer = HttpFields.__dateCache.formatBuffer(_timeStamp); + _timeStampBuffer = HttpFields.__dateCache.formatBuffer(_timeStamp); return _timeStampBuffer; } - + /* ------------------------------------------------------------ */ /** * @return Returns the uri. @@ -1208,7 +1196,7 @@ public class Request implements HttpServletRequest { if (_authentication instanceof Authentication.Deferred) setAuthentication(((Authentication.Deferred)_authentication).authenticate(this)); - + if (_authentication instanceof Authentication.User) return ((Authentication.User)_authentication).getUserIdentity(); return null; @@ -1216,9 +1204,8 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ /** - * @return The resolved user Identity, which may be null if the - * {@link Authentication} is not {@link Authentication.User} - * (eg. {@link Authentication.Deferred}). + * @return The resolved user Identity, which may be null if the {@link Authentication} is not {@link Authentication.User} (eg. + * {@link Authentication.Deferred}). */ public UserIdentity getResolvedUserIdentity() { @@ -1226,22 +1213,22 @@ public class Request implements HttpServletRequest return ((Authentication.User)_authentication).getUserIdentity(); return null; } - + /* ------------------------------------------------------------ */ public UserIdentity.Scope getUserIdentityScope() { return _scope; } - + /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#getUserPrincipal() */ public Principal getUserPrincipal() { if (_authentication instanceof Authentication.Deferred) setAuthentication(((Authentication.Deferred)_authentication).authenticate(this)); - + if (_authentication instanceof Authentication.User) { UserIdentity user = ((Authentication.User)_authentication).getUserIdentity(); @@ -1249,10 +1236,11 @@ public class Request implements HttpServletRequest } return null; } - + /* ------------------------------------------------------------ */ - /** Get timestamp of the request dispatch - * + /** + * Get timestamp of the request dispatch + * * @return timestamp */ public long getDispatchTime() @@ -1271,157 +1259,156 @@ public class Request implements HttpServletRequest { return _asyncSupported; } - + /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdFromCookie() */ public boolean isRequestedSessionIdFromCookie() { - return _requestedSessionId!=null && _requestedSessionIdFromCookie; + return _requestedSessionId != null && _requestedSessionIdFromCookie; } - + /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdFromUrl() */ public boolean isRequestedSessionIdFromUrl() { - return _requestedSessionId!=null && !_requestedSessionIdFromCookie; + return _requestedSessionId != null && !_requestedSessionIdFromCookie; } - + /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdFromURL() */ public boolean isRequestedSessionIdFromURL() { - return _requestedSessionId!=null && !_requestedSessionIdFromCookie; + return _requestedSessionId != null && !_requestedSessionIdFromCookie; } - + /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdValid() */ public boolean isRequestedSessionIdValid() - { - if (_requestedSessionId==null) + { + if (_requestedSessionId == null) return false; - - HttpSession session=getSession(false); + + HttpSession session = getSession(false); return (session != null && _sessionManager.getSessionIdManager().getClusterId(_requestedSessionId).equals(_sessionManager.getClusterId(session))); } - + /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#isSecure() */ public boolean isSecure() { return _connection.isConfidential(this); } - + /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.http.HttpServletRequest#isUserInRole(java.lang.String) */ public boolean isUserInRole(String role) { if (_authentication instanceof Authentication.Deferred) setAuthentication(((Authentication.Deferred)_authentication).authenticate(this)); - + if (_authentication instanceof Authentication.User) return ((Authentication.User)_authentication).isUserInRole(_scope,role); return false; } - + /* ------------------------------------------------------------ */ public HttpSession recoverNewSession(Object key) { - if (_savedNewSessions==null) + if (_savedNewSessions == null) return null; return _savedNewSessions.get(key); } - + /* ------------------------------------------------------------ */ protected void recycle() { - if (_inputState==__READER) + if (_inputState == __READER) { try { - int r=_reader.read(); - while(r!=-1) - r=_reader.read(); + int r = _reader.read(); + while (r != -1) + r = _reader.read(); } - catch(Exception e) + catch (Exception e) { LOG.ignore(e); - _reader=null; + _reader = null; } } - + setAuthentication(Authentication.NOT_CHECKED); - _async.recycle(); - _asyncSupported=true; - _handled=false; - if (_context!=null) + _async.recycle(); + _asyncSupported = true; + _handled = false; + if (_context != null) throw new IllegalStateException("Request in context!"); - if(_attributes!=null) + if (_attributes != null) _attributes.clearAttributes(); - _characterEncoding=null; - if (_cookies!=null) + _characterEncoding = null; + if (_cookies != null) _cookies.reset(); - _cookiesExtracted=false; - _context=null; - _serverName=null; - _method=null; - _pathInfo=null; - _port=0; - _protocol=HttpVersions.HTTP_1_1; - _queryEncoding=null; - _queryString=null; - _requestedSessionId=null; - _requestedSessionIdFromCookie=false; - _session=null; - _sessionManager=null; - _requestURI=null; - _scope=null; - _scheme=URIUtil.HTTP; - _servletPath=null; - _timeStamp=0; - _timeStampBuffer=null; - _uri=null; - if (_baseParameters!=null) + _cookiesExtracted = false; + _context = null; + _serverName = null; + _method = null; + _pathInfo = null; + _port = 0; + _protocol = HttpVersions.HTTP_1_1; + _queryEncoding = null; + _queryString = null; + _requestedSessionId = null; + _requestedSessionIdFromCookie = false; + _session = null; + _sessionManager = null; + _requestURI = null; + _scope = null; + _scheme = URIUtil.HTTP; + _servletPath = null; + _timeStamp = 0; + _timeStampBuffer = null; + _uri = null; + if (_baseParameters != null) _baseParameters.clear(); - _parameters=null; - _paramsExtracted=false; - _inputState=__NONE; - - if (_savedNewSessions!=null) + _parameters = null; + _paramsExtracted = false; + _inputState = __NONE; + + if (_savedNewSessions != null) _savedNewSessions.clear(); - _savedNewSessions=null; + _savedNewSessions = null; } - + /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#removeAttribute(java.lang.String) */ public void removeAttribute(String name) { - Object old_value=_attributes==null?null:_attributes.getAttribute(name); - - if (_attributes!=null) + Object old_value = _attributes == null?null:_attributes.getAttribute(name); + + if (_attributes != null) _attributes.removeAttribute(name); - - if (old_value!=null) + + if (old_value != null) { - if (_requestAttributeListeners!=null) + if (_requestAttributeListeners != null) { - final ServletRequestAttributeEvent event = - new ServletRequestAttributeEvent(_context,this,name, old_value); - final int size=LazyList.size(_requestAttributeListeners); - for(int i=0;i<size;i++) + final ServletRequestAttributeEvent event = new ServletRequestAttributeEvent(_context,this,name,old_value); + final int size = LazyList.size(_requestAttributeListeners); + for (int i = 0; i < size; i++) { final EventListener listener = (ServletRequestAttributeListener)LazyList.get(_requestAttributeListeners,i); if (listener instanceof ServletRequestAttributeListener) @@ -1433,67 +1420,63 @@ public class Request implements HttpServletRequest } } } - + /* ------------------------------------------------------------ */ - public void removeEventListener(final EventListener listener) + public void removeEventListener(final EventListener listener) { - _requestAttributeListeners= LazyList.remove(_requestAttributeListeners, listener); + _requestAttributeListeners = LazyList.remove(_requestAttributeListeners,listener); } + /* ------------------------------------------------------------ */ - public void saveNewSession(Object key,HttpSession session) + public void saveNewSession(Object key, HttpSession session) { - if (_savedNewSessions==null) - _savedNewSessions=new HashMap<Object,HttpSession>(); + if (_savedNewSessions == null) + _savedNewSessions = new HashMap<Object, HttpSession>(); _savedNewSessions.put(key,session); } + /* ------------------------------------------------------------ */ public void setAsyncSupported(boolean supported) { - _asyncSupported=supported; + _asyncSupported = supported; } - + /* ------------------------------------------------------------ */ - /* - * Set a request attribute. - * if the attribute name is "org.eclipse.jetty.server.server.Request.queryEncoding" then - * the value is also passed in a call to {@link #setQueryEncoding}. - * <p> - * if the attribute name is "org.eclipse.jetty.server.server.ResponseBuffer", then - * the response buffer is flushed with @{link #flushResponseBuffer} - * <p> - * if the attribute name is "org.eclipse.jetty.io.EndPoint.maxIdleTime", then the - * value is passed to the associated {@link EndPoint#setMaxIdleTime}. + /* + * Set a request attribute. if the attribute name is "org.eclipse.jetty.server.server.Request.queryEncoding" then the value is also passed in a call to + * {@link #setQueryEncoding}. <p> if the attribute name is "org.eclipse.jetty.server.server.ResponseBuffer", then the response buffer is flushed with @{link + * #flushResponseBuffer} <p> if the attribute name is "org.eclipse.jetty.io.EndPoint.maxIdleTime", then the value is passed to the associated {@link + * EndPoint#setMaxIdleTime}. + * * @see javax.servlet.ServletRequest#setAttribute(java.lang.String, java.lang.Object) */ public void setAttribute(String name, Object value) { - Object old_value=_attributes==null?null:_attributes.getAttribute(name); - + Object old_value = _attributes == null?null:_attributes.getAttribute(name); + if (name.startsWith("org.eclipse.jetty.")) { if ("org.eclipse.jetty.server.Request.queryEncoding".equals(name)) - setQueryEncoding(value==null?null:value.toString()); - else if("org.eclipse.jetty.server.sendContent".equals(name)) + setQueryEncoding(value == null?null:value.toString()); + else if ("org.eclipse.jetty.server.sendContent".equals(name)) { - try + try { - ((AbstractHttpConnection.Output)getServletResponse().getOutputStream()).sendContent(value); - } + ((AbstractHttpConnection.Output)getServletResponse().getOutputStream()).sendContent(value); + } catch (IOException e) { throw new RuntimeException(e); } } - else if("org.eclipse.jetty.server.ResponseBuffer".equals(name)) + else if ("org.eclipse.jetty.server.ResponseBuffer".equals(name)) { try { - final ByteBuffer byteBuffer=(ByteBuffer)value; + final ByteBuffer byteBuffer = (ByteBuffer)value; synchronized (byteBuffer) { - NIOBuffer buffer = byteBuffer.isDirect() - ?new DirectNIOBuffer(byteBuffer,true) - :new IndirectNIOBuffer(byteBuffer,true); + NIOBuffer buffer = byteBuffer.isDirect()?new DirectNIOBuffer(byteBuffer,true):new IndirectNIOBuffer(byteBuffer,true); ((AbstractHttpConnection.Output)getServletResponse().getOutputStream()).sendResponse(buffer); } } @@ -1508,32 +1491,31 @@ public class Request implements HttpServletRequest { getConnection().getEndPoint().setMaxIdleTime(Integer.valueOf(value.toString())); } - catch(IOException e) + catch (IOException e) { throw new RuntimeException(e); } } } - - if (_attributes==null) - _attributes=new AttributesMap(); - _attributes.setAttribute(name, value); - - if (_requestAttributeListeners!=null) + + if (_attributes == null) + _attributes = new AttributesMap(); + _attributes.setAttribute(name,value); + + if (_requestAttributeListeners != null) { - final ServletRequestAttributeEvent event = - new ServletRequestAttributeEvent(_context,this,name, old_value==null?value:old_value); - final int size=LazyList.size(_requestAttributeListeners); - for(int i=0;i<size;i++) + final ServletRequestAttributeEvent event = new ServletRequestAttributeEvent(_context,this,name,old_value == null?value:old_value); + final int size = LazyList.size(_requestAttributeListeners); + for (int i = 0; i < size; i++) { final EventListener listener = (ServletRequestAttributeListener)LazyList.get(_requestAttributeListeners,i); if (listener instanceof ServletRequestAttributeListener) { final ServletRequestAttributeListener l = (ServletRequestAttributeListener)listener; - if (old_value==null) + if (old_value == null) l.attributeAdded(event); - else if (value==null) + else if (value == null) l.attributeRemoved(event); else l.attributeReplaced(event); @@ -1541,21 +1523,23 @@ public class Request implements HttpServletRequest } } } - + /* ------------------------------------------------------------ */ - /* + /* */ public void setAttributes(Attributes attributes) { - _attributes=attributes; + _attributes = attributes; } - + /* ------------------------------------------------------------ */ - /* ------------------------------------------------------------ */ - /** Set the authentication. - * @param authentication the authentication to set + /** + * Set the authentication. + * + * @param authentication + * the authentication to set */ public void setAuthentication(Authentication authentication) { @@ -1563,78 +1547,80 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#setCharacterEncoding(java.lang.String) */ public void setCharacterEncoding(String encoding) throws UnsupportedEncodingException { - if (_inputState!=__NONE) + if (_inputState != __NONE) return; - _characterEncoding=encoding; + _characterEncoding = encoding; // check encoding is supported if (!StringUtil.isUTF8(encoding)) - //noinspection ResultOfMethodCallIgnored + // noinspection ResultOfMethodCallIgnored "".getBytes(encoding); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#setCharacterEncoding(java.lang.String) */ public void setCharacterEncodingUnchecked(String encoding) { - _characterEncoding=encoding; + _characterEncoding = encoding; } /* ------------------------------------------------------------ */ - //final so we can safely call this from constructor + // final so we can safely call this from constructor protected final void setConnection(AbstractHttpConnection connection) { - _connection=connection; - _async.setConnection(connection); - _endp=connection.getEndPoint(); - _dns=connection.getResolveNames(); + _connection = connection; + _async.setConnection(connection); + _endp = connection.getEndPoint(); + _dns = connection.getResolveNames(); } /* ------------------------------------------------------------ */ - /* + /* * @see javax.servlet.ServletRequest#getContentType() */ public void setContentType(String contentType) { _connection.getRequestFields().put(HttpHeaders.CONTENT_TYPE_BUFFER,contentType); - + } /* ------------------------------------------------------------ */ /** * Set request context - * - * @param context context object + * + * @param context + * context object */ public void setContext(Context context) { - _newContext=_context!=context; - _context=context; + _newContext = _context != context; + _context = context; } - + /* ------------------------------------------------------------ */ /** - * @return True if this is the first call of {@link #takeNewContext()} - * since the last {@link #setContext(org.eclipse.jetty.server.handler.ContextHandler.Context)} call. + * @return True if this is the first call of {@link #takeNewContext()} since the last + * {@link #setContext(org.eclipse.jetty.server.handler.ContextHandler.Context)} call. */ public boolean takeNewContext() { - boolean nc=_newContext; - _newContext=false; + boolean nc = _newContext; + _newContext = false; return nc; } - + /* ------------------------------------------------------------ */ /** * Sets the "context path" for this request + * * @see HttpServletRequest#getContextPath() */ public void setContextPath(String contextPath) @@ -1644,30 +1630,32 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ /** - * @param cookies The cookies to set. + * @param cookies + * The cookies to set. */ public void setCookies(Cookie[] cookies) { - if (_cookies==null) - _cookies=new CookieCutter(); + if (_cookies == null) + _cookies = new CookieCutter(); _cookies.setCookies(cookies); } /* ------------------------------------------------------------ */ public void setDispatcherType(DispatcherType type) { - _dispatcherType=type; + _dispatcherType = type; } - + /* ------------------------------------------------------------ */ public void setHandled(boolean h) { - _handled=h; + _handled = h; } - + /* ------------------------------------------------------------ */ /** - * @param method The method to set. + * @param method + * The method to set. */ public void setMethod(String method) { @@ -1676,27 +1664,30 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ /** - * @param parameters The parameters to set. + * @param parameters + * The parameters to set. */ public void setParameters(MultiMap<String> parameters) { - _parameters= (parameters==null)?_baseParameters:parameters; - if (_paramsExtracted && _parameters==null) + _parameters = (parameters == null)?_baseParameters:parameters; + if (_paramsExtracted && _parameters == null) throw new IllegalStateException(); } /* ------------------------------------------------------------ */ /** - * @param pathInfo The pathInfo to set. + * @param pathInfo + * The pathInfo to set. */ public void setPathInfo(String pathInfo) { _pathInfo = pathInfo; } - + /* ------------------------------------------------------------ */ /** - * @param protocol The protocol to set. + * @param protocol + * The protocol to set. */ public void setProtocol(String protocol) { @@ -1704,33 +1695,34 @@ public class Request implements HttpServletRequest } /* ------------------------------------------------------------ */ - /** Set the character encoding used for the query string. - * This call will effect the return of getQueryString and getParamaters. - * It must be called before any geParameter methods. - * - * The request attribute "org.eclipse.jetty.server.server.Request.queryEncoding" - * may be set as an alternate method of calling setQueryEncoding. - * + /** + * Set the character encoding used for the query string. This call will effect the return of getQueryString and getParamaters. It must be called before any + * geParameter methods. + * + * The request attribute "org.eclipse.jetty.server.server.Request.queryEncoding" may be set as an alternate method of calling setQueryEncoding. + * * @param queryEncoding */ public void setQueryEncoding(String queryEncoding) { - _queryEncoding=queryEncoding; - _queryString=null; + _queryEncoding = queryEncoding; + _queryString = null; } - + /* ------------------------------------------------------------ */ /** - * @param queryString The queryString to set. + * @param queryString + * The queryString to set. */ public void setQueryString(String queryString) { _queryString = queryString; } - + /* ------------------------------------------------------------ */ /** - * @param addr The address to set. + * @param addr + * The address to set. */ public void setRemoteAddr(String addr) { @@ -1739,7 +1731,8 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ /** - * @param host The host to set. + * @param host + * The host to set. */ public void setRemoteHost(String host) { @@ -1748,16 +1741,18 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ /** - * @param requestedSessionId The requestedSessionId to set. + * @param requestedSessionId + * The requestedSessionId to set. */ public void setRequestedSessionId(String requestedSessionId) { _requestedSessionId = requestedSessionId; } - + /* ------------------------------------------------------------ */ /** - * @param requestedSessionIdCookie The requestedSessionIdCookie to set. + * @param requestedSessionIdCookie + * The requestedSessionIdCookie to set. */ public void setRequestedSessionIdFromCookie(boolean requestedSessionIdCookie) { @@ -1766,7 +1761,8 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ /** - * @param requestURI The requestURI to set. + * @param requestURI + * The requestURI to set. */ public void setRequestURI(String requestURI) { @@ -1775,7 +1771,8 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ /** - * @param scheme The scheme to set. + * @param scheme + * The scheme to set. */ public void setScheme(String scheme) { @@ -1784,16 +1781,18 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ /** - * @param host The host to set. + * @param host + * The host to set. */ public void setServerName(String host) { _serverName = host; } - + /* ------------------------------------------------------------ */ /** - * @param port The port to set. + * @param port + * The port to set. */ public void setServerPort(int port) { @@ -1802,7 +1801,8 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ /** - * @param servletPath The servletPath to set. + * @param servletPath + * The servletPath to set. */ public void setServletPath(String servletPath) { @@ -1811,7 +1811,8 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ /** - * @param session The session to set. + * @param session + * The session to set. */ public void setSession(HttpSession session) { @@ -1820,7 +1821,8 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ /** - * @param sessionManager The sessionManager to set. + * @param sessionManager + * The sessionManager to set. */ public void setSessionManager(SessionManager sessionManager) { @@ -1835,7 +1837,8 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ /** - * @param uri The uri to set. + * @param uri + * The uri to set. */ public void setUri(HttpURI uri) { @@ -1845,13 +1848,15 @@ public class Request implements HttpServletRequest /* ------------------------------------------------------------ */ public void setUserIdentityScope(UserIdentity.Scope scope) { - _scope=scope; + _scope = scope; } /* ------------------------------------------------------------ */ - /** Set timetstamp of request dispatch - * - * @param value timestamp + /** + * Set timetstamp of request dispatch + * + * @param value + * timestamp */ public void setDispatchTime(long value) { @@ -1863,7 +1868,7 @@ public class Request implements HttpServletRequest { if (!_asyncSupported) throw new IllegalStateException("!asyncSupported"); - _async.suspend(_context,this,_connection._response); + _async.suspend(_context,this,_connection._response); return _async; } @@ -1880,85 +1885,85 @@ public class Request implements HttpServletRequest @Override public String toString() { - return (_handled?"[":"(")+getMethod()+" "+_uri+(_handled?"]@":")@")+hashCode()+" "+super.toString(); + return (_handled?"[":"(") + getMethod() + " " + _uri + (_handled?"]@":")@") + hashCode() + " " + super.toString(); } - - + /* ------------------------------------------------------------ */ - /** Merge in a new query string. - * The query string is merged with the existing parameters and {@link #setParameters(MultiMap)} and {@link #setQueryString(String)} are called with the result. - * The merge is according to the rules of the servlet dispatch forward method. - * @param query The query string to merge into the request. + /** + * Merge in a new query string. The query string is merged with the existing parameters and {@link #setParameters(MultiMap)} and + * {@link #setQueryString(String)} are called with the result. The merge is according to the rules of the servlet dispatch forward method. + * + * @param query + * The query string to merge into the request. */ public void mergeQueryString(String query) { // extract parameters from dispatch query - MultiMap<String> parameters=new MultiMap<String>(); + MultiMap<String> parameters = new MultiMap<String>(); UrlEncoded.decodeTo(query,parameters,getCharacterEncoding()); - + boolean merge_old_query = false; // Have we evaluated parameters - if (!_paramsExtracted) + if (!_paramsExtracted) extractParameters(); - + // Are there any existing parameters? - if (_parameters!=null && _parameters.size()>0) + if (_parameters != null && _parameters.size() > 0) { // Merge parameters; new parameters of the same name take precedence. - Iterator<Entry<String,Object>> iter = _parameters.entrySet().iterator(); + Iterator<Entry<String, Object>> iter = _parameters.entrySet().iterator(); while (iter.hasNext()) { - Map.Entry<String,Object> entry = iter.next(); - String name=entry.getKey(); - + Map.Entry<String, Object> entry = iter.next(); + String name = entry.getKey(); + // If the names match, we will need to remake the query string if (parameters.containsKey(name)) merge_old_query = true; // Add the old values to the new parameter map - Object values=entry.getValue(); - for (int i=0;i<LazyList.size(values);i++) - parameters.add(name, LazyList.get(values, i)); + Object values = entry.getValue(); + for (int i = 0; i < LazyList.size(values); i++) + parameters.add(name,LazyList.get(values,i)); } } - - if (_queryString != null && _queryString.length()>0) + + if (_queryString != null && _queryString.length() > 0) { - if ( merge_old_query ) + if (merge_old_query) { StringBuilder overridden_query_string = new StringBuilder(); MultiMap<String> overridden_old_query = new MultiMap<String>(); UrlEncoded.decodeTo(_queryString,overridden_old_query,getCharacterEncoding()); - MultiMap<String> overridden_new_query = new MultiMap<String>(); + MultiMap<String> overridden_new_query = new MultiMap<String>(); UrlEncoded.decodeTo(query,overridden_new_query,getCharacterEncoding()); - Iterator<Entry<String,Object>> iter = overridden_old_query.entrySet().iterator(); + Iterator<Entry<String, Object>> iter = overridden_old_query.entrySet().iterator(); while (iter.hasNext()) { - Map.Entry<String,Object> entry = iter.next(); - String name=entry.getKey(); - if(!overridden_new_query.containsKey(name)) + Map.Entry<String, Object> entry = iter.next(); + String name = entry.getKey(); + if (!overridden_new_query.containsKey(name)) { - Object values=entry.getValue(); - for (int i=0;i<LazyList.size(values);i++) + Object values = entry.getValue(); + for (int i = 0; i < LazyList.size(values); i++) { - overridden_query_string.append("&").append(name).append("=").append(LazyList.get(values, i)); + overridden_query_string.append("&").append(name).append("=").append(LazyList.get(values,i)); } } } - + query = query + overridden_query_string; } - else + else { - query=query+"&"+_queryString; + query = query + "&" + _queryString; } - } + } - setParameters(parameters); - setQueryString(query); + setParameters(parameters); + setQueryString(query); } } - |