Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2012-10-12 10:19:21 +0000
committerGreg Wilkins2012-10-12 10:19:21 +0000
commitfac580c374127acd8fc9b955f415cedd8b5ec6dc (patch)
treeabfe7aec8f782c512c47f8e7a71a319322ca39de /jetty-server/src/main/java
parent6c011025b67635004e3c3471a5315f2429755852 (diff)
parent7625f0b8b3a1ceced86b46f8e4c5722430323468 (diff)
downloadorg.eclipse.jetty.project-fac580c374127acd8fc9b955f415cedd8b5ec6dc.tar.gz
org.eclipse.jetty.project-fac580c374127acd8fc9b955f415cedd8b5ec6dc.tar.xz
org.eclipse.jetty.project-fac580c374127acd8fc9b955f415cedd8b5ec6dc.zip
Merge remote-tracking branch 'origin/jetty-8' into jetty-9
Conflicts: VERSION.txt example-async-rest/async-rest-jar/pom.xml example-async-rest/async-rest-webapp/pom.xml example-async-rest/pom.xml example-jetty-embedded/pom.xml jetty-aggregate/jetty-all-server/pom.xml jetty-aggregate/jetty-all/pom.xml jetty-aggregate/jetty-client/pom.xml jetty-aggregate/jetty-server/pom.xml jetty-aggregate/jetty-servlet/pom.xml jetty-aggregate/jetty-webapp/pom.xml jetty-aggregate/jetty-websocket/pom.xml jetty-aggregate/pom.xml jetty-ajp/src/main/java/org/eclipse/jetty/ajp/Ajp13Generator.java jetty-annotations/pom.xml jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AbstractDiscoverableAnnotationHandler.java jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationConfiguration.java jetty-annotations/src/main/java/org/eclipse/jetty/annotations/AnnotationParser.java jetty-annotations/src/main/java/org/eclipse/jetty/annotations/ServletContainerInitializerListener.java jetty-annotations/src/main/java/org/eclipse/jetty/annotations/ServletSecurityAnnotationHandler.java jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebServletAnnotation.java jetty-annotations/src/main/java/org/eclipse/jetty/annotations/WebServletAnnotationHandler.java jetty-client/pom.xml jetty-continuation/pom.xml jetty-deploy/pom.xml jetty-distribution/pom.xml jetty-http-spi/pom.xml jetty-http/pom.xml jetty-http/src/main/java/org/eclipse/jetty/http/Generator.java jetty-http/src/main/java/org/eclipse/jetty/http/HttpFields.java jetty-http/src/main/java/org/eclipse/jetty/http/HttpGenerator.java jetty-http/src/main/java/org/eclipse/jetty/http/HttpURI.java jetty-http/src/main/java/org/eclipse/jetty/http/MimeTypes.java jetty-http/src/test/java/org/eclipse/jetty/http/HttpFieldsTest.java jetty-io/pom.xml jetty-io/src/main/java/org/eclipse/jetty/io/AbstractBuffer.java jetty-io/src/main/java/org/eclipse/jetty/io/Buffer.java jetty-io/src/main/java/org/eclipse/jetty/io/BufferUtil.java jetty-jaspi/pom.xml jetty-jmx/pom.xml jetty-jndi/pom.xml jetty-jndi/src/main/java/org/eclipse/jetty/jndi/ContextFactory.java jetty-jndi/src/test/java/org/eclipse/jetty/jndi/java/TestJNDI.java jetty-jsp/pom.xml jetty-monitor/pom.xml jetty-nested/pom.xml jetty-nosql/pom.xml jetty-osgi/jetty-osgi-boot-jsp/pom.xml jetty-osgi/jetty-osgi-boot-warurl/pom.xml jetty-osgi/jetty-osgi-boot/pom.xml jetty-osgi/jetty-osgi-boot/src/main/java/org/eclipse/jetty/osgi/boot/OSGiDeployer.java jetty-osgi/jetty-osgi-httpservice/pom.xml jetty-osgi/pom.xml jetty-osgi/test-jetty-osgi-context/pom.xml jetty-osgi/test-jetty-osgi-webapp/pom.xml jetty-osgi/test-jetty-osgi/pom.xml jetty-overlay-deployer/pom.xml jetty-plus/pom.xml jetty-policy/pom.xml jetty-rewrite/pom.xml jetty-runner/pom.xml jetty-security/pom.xml jetty-security/src/main/java/org/eclipse/jetty/security/ConstraintSecurityHandler.java jetty-security/src/main/java/org/eclipse/jetty/security/authentication/FormAuthenticator.java jetty-security/src/main/java/org/eclipse/jetty/security/authentication/LoginAuthenticator.java jetty-security/src/test/java/org/eclipse/jetty/security/ConstraintTest.java jetty-server/pom.xml jetty-server/src/main/java/org/eclipse/jetty/server/AbstractHttpConnection.java jetty-server/src/main/java/org/eclipse/jetty/server/AsyncHttpConnection.java jetty-server/src/main/java/org/eclipse/jetty/server/HttpInput.java jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java jetty-server/src/main/java/org/eclipse/jetty/server/Request.java jetty-server/src/main/java/org/eclipse/jetty/server/Response.java jetty-server/src/main/java/org/eclipse/jetty/server/bio/SocketConnector.java jetty-server/src/main/java/org/eclipse/jetty/server/session/SessionHandler.java jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java jetty-server/src/test/java/org/eclipse/jetty/server/HttpURITest.java jetty-server/src/test/java/org/eclipse/jetty/server/ResponseTest.java jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SelectChannelServerSslTest.java jetty-server/src/test/java/org/eclipse/jetty/server/ssl/SslSocketServerTest.java jetty-server/src/test/resources/jetty-logging.properties jetty-servlet/pom.xml jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletContextHandler.java jetty-servlet/src/main/java/org/eclipse/jetty/servlet/ServletHolder.java jetty-servlet/src/test/java/org/eclipse/jetty/servlet/DispatcherTest.java jetty-servlets/pom.xml jetty-servlets/src/main/java/org/eclipse/jetty/servlets/GzipFilter.java jetty-servlets/src/main/java/org/eclipse/jetty/servlets/MultiPartFilter.java jetty-servlets/src/test/java/org/eclipse/jetty/servlets/MultipartFilterTest.java jetty-servlets/src/test/java/org/eclipse/jetty/servlets/gzip/GzipTester.java jetty-spdy/pom.xml jetty-spdy/spdy-client/pom.xml jetty-spdy/spdy-core/pom.xml jetty-spdy/spdy-example-webapp/pom.xml jetty-spdy/spdy-http-server/pom.xml jetty-spdy/spdy-jetty-http/src/main/java/org/eclipse/jetty/spdy/http/ServerHTTPSPDYAsyncConnection.java jetty-start/pom.xml jetty-start/src/test/java/org/eclipse/jetty/start/CommandLineBuilderTest.java jetty-start/src/test/java/org/eclipse/jetty/start/MainTest.java jetty-util-ajax/pom.xml jetty-util/pom.xml jetty-util/src/main/java/org/eclipse/jetty/util/MultiPartInputStream.java jetty-util/src/main/java/org/eclipse/jetty/util/log/StdErrLog.java jetty-util/src/test/java/org/eclipse/jetty/util/MultiPartInputStreamTest.java jetty-webapp/pom.xml jetty-webapp/src/main/java/org/eclipse/jetty/webapp/StandardDescriptorProcessor.java jetty-webapp/src/main/java/org/eclipse/jetty/webapp/WebAppContext.java jetty-websocket/pom.xml jetty-websocket/src/test/java/org/eclipse/jetty/websocket/WebSocketServletRFCTest.java jetty-websocket/src/test/java/org/eclipse/jetty/websocket/helper/MessageSender.java jetty-websocket/websocket-server/src/test/java/org/eclipse/jetty/websocket/server/UnitGenerator.java jetty-xml/pom.xml pom.xml test-continuation/pom.xml test-jetty-nested/pom.xml test-jetty-servlet/pom.xml test-jetty-webapp/pom.xml test-jetty-webapp/src/main/webapp/WEB-INF/web.xml tests/pom.xml tests/test-integration/pom.xml tests/test-loginservice/pom.xml tests/test-sessions/pom.xml tests/test-sessions/test-hash-sessions/pom.xml tests/test-sessions/test-jdbc-sessions/pom.xml tests/test-sessions/test-mongodb-sessions/pom.xml tests/test-sessions/test-sessions-common/pom.xml tests/test-webapps/pom.xml tests/test-webapps/test-webapp-rfc2616/pom.xml
Diffstat (limited to 'jetty-server/src/main/java')
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/HttpInput.java7
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java3
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/Request.java70
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/Response.java29
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/Server.java2
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/handler/ShutdownHandler.java2
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/session/SessionHandler.java150
7 files changed, 180 insertions, 83 deletions
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpInput.java b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpInput.java
index 98a86b8a01..5484a62253 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpInput.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpInput.java
@@ -73,9 +73,9 @@ public abstract class HttpInput<T> extends ServletInputStream
@Override
public int read() throws IOException
{
- byte[] oneByte = new byte[1];
- int len = read(oneByte, 0, 1);
- return len < 0 ? len : 0xFF & oneByte[0];
+ byte[] bytes = new byte[1];
+ int read = read(bytes, 0, 1);
+ return read < 0 ? -1 : 0xff & bytes[0];
}
@Override
@@ -127,7 +127,6 @@ public abstract class HttpInput<T> extends ServletInputStream
}
return get(item, b, off, len);
}
-
protected abstract int remaining(T item);
protected abstract int get(T item, byte[] buffer, int offset, int length);
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java
index 7c6c19fa63..8cbc9d0f6f 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpOutput.java
@@ -173,6 +173,7 @@ public class HttpOutput extends ServletOutputStream
_channel.write(_aggregate, false);
}
+
@Override
public void write(int b) throws IOException
{
@@ -181,7 +182,7 @@ public class HttpOutput extends ServletOutputStream
if (_aggregate == null)
_aggregate = _channel.getByteBufferPool().acquire(getBufferSize(), false);
-
+
BufferUtil.append(_aggregate, (byte)b);
_written++;
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 4975a2c600..e203a3f4d4 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
@@ -49,6 +49,8 @@ import javax.servlet.ServletInputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
+import javax.servlet.ServletRequestEvent;
+import javax.servlet.ServletRequestListener;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
@@ -71,6 +73,7 @@ import org.eclipse.jetty.server.handler.ContextHandler.Context;
import org.eclipse.jetty.server.session.AbstractSessionManager;
import org.eclipse.jetty.util.Attributes;
import org.eclipse.jetty.util.AttributesMap;
+import org.eclipse.jetty.util.MultiException;
import org.eclipse.jetty.util.MultiMap;
import org.eclipse.jetty.util.MultiPartInputStream;
import org.eclipse.jetty.util.StringUtil;
@@ -114,6 +117,8 @@ import org.eclipse.jetty.util.log.Logger;
public class Request implements HttpServletRequest
{
public static final String __MULTIPART_CONFIG_ELEMENT = "org.eclipse.multipartConfig";
+ public static final String __MULTIPART_INPUT_STREAM = "org.eclipse.multiPartInputStream";
+ public static final String __MULTIPART_CONTEXT = "org.eclipse.multiPartContext";
private static final Logger LOG = Log.getLogger(Request.class);
private static final Collection<Locale> __defaultLocale = Collections.singleton(Locale.getDefault());
@@ -123,6 +128,42 @@ public class Request implements HttpServletRequest
private final HttpFields _fields=new HttpFields();
private final List<ServletRequestAttributeListener> _requestAttributeListeners=new ArrayList<>();
private final HttpInput<?> _input;
+
+ public static class MultiPartCleanerListener implements ServletRequestListener
+ {
+ @Override
+ public void requestDestroyed(ServletRequestEvent sre)
+ {
+ //Clean up any tmp files created by MultiPartInputStream
+ MultiPartInputStream mpis = (MultiPartInputStream)sre.getServletRequest().getAttribute(__MULTIPART_INPUT_STREAM);
+ if (mpis != null)
+ {
+ ContextHandler.Context context = (ContextHandler.Context)sre.getServletRequest().getAttribute(__MULTIPART_CONTEXT);
+
+ //Only do the cleanup if we are exiting from the context in which a servlet parsed the multipart files
+ if (context == sre.getServletContext())
+ {
+ try
+ {
+ mpis.deleteParts();
+ }
+ catch (MultiException e)
+ {
+ sre.getServletContext().log("Errors deleting multipart tmp files", e);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void requestInitialized(ServletRequestEvent sre)
+ {
+ //nothing to do, multipart config set up by ServletHolder.handle()
+ }
+
+ }
+
+
private boolean _secure;
private boolean _asyncSupported = true;
@@ -1763,6 +1804,7 @@ public class Request implements HttpServletRequest
public void setQueryString(String queryString)
{
_queryString = queryString;
+ _queryEncoding = null; //assume utf-8
}
/* ------------------------------------------------------------ */
@@ -1950,9 +1992,16 @@ public class Request implements HttpServletRequest
if (_multiPartInputStream == null)
{
+ MultipartConfigElement config = (MultipartConfigElement)getAttribute(__MULTIPART_CONFIG_ELEMENT);
+
+ if (config == null)
+ throw new IllegalStateException("No multipart config for servlet");
+
_multiPartInputStream = new MultiPartInputStream(getInputStream(),
- getContentType(),(MultipartConfigElement)getAttribute(__MULTIPART_CONFIG_ELEMENT),
+ getContentType(),config,
(_context != null?(File)_context.getAttribute("javax.servlet.context.tempdir"):null));
+ setAttribute(__MULTIPART_INPUT_STREAM, _multiPartInputStream);
+ setAttribute(__MULTIPART_CONTEXT, _context);
Collection<Part> parts = _multiPartInputStream.getParts(); //causes parsing
for (Part p:parts)
{
@@ -1982,9 +2031,17 @@ public class Request implements HttpServletRequest
if (_multiPartInputStream == null)
{
+ MultipartConfigElement config = (MultipartConfigElement)getAttribute(__MULTIPART_CONFIG_ELEMENT);
+
+ if (config == null)
+ throw new IllegalStateException("No multipart config for servlet");
+
_multiPartInputStream = new MultiPartInputStream(getInputStream(),
- getContentType(),(MultipartConfigElement)getAttribute(__MULTIPART_CONFIG_ELEMENT),
+ getContentType(), config,
(_context != null?(File)_context.getAttribute("javax.servlet.context.tempdir"):null));
+
+ setAttribute(__MULTIPART_INPUT_STREAM, _multiPartInputStream);
+ setAttribute(__MULTIPART_CONTEXT, _context);
Collection<Part> parts = _multiPartInputStream.getParts(); //causes parsing
for (Part p:parts)
{
@@ -2042,7 +2099,7 @@ public class Request implements HttpServletRequest
{
// extract parameters from dispatch query
MultiMap<String> parameters = new MultiMap<>();
- UrlEncoded.decodeTo(query,parameters,getCharacterEncoding());
+ UrlEncoded.decodeTo(query,parameters, StringUtil.__UTF8); //have to assume UTF-8 because we can't know otherwise
boolean merge_old_query = false;
@@ -2063,10 +2120,11 @@ public class Request implements HttpServletRequest
{
StringBuilder overridden_query_string = new StringBuilder();
MultiMap<String> overridden_old_query = new MultiMap<>();
- UrlEncoded.decodeTo(_queryString,overridden_old_query,getCharacterEncoding());
-
+ UrlEncoded.decodeTo(_queryString,overridden_old_query,getQueryEncoding());//decode using any queryencoding set for the request
+
+
MultiMap<String> overridden_new_query = new MultiMap<>();
- UrlEncoded.decodeTo(query,overridden_new_query,getCharacterEncoding());
+ UrlEncoded.decodeTo(query,overridden_new_query,StringUtil.__UTF8); //have to assume utf8 as we cannot know otherwise
for(String name: overridden_old_query.keySet())
{
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java b/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java
index 6294d4a3d1..4cc8a885cc 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/Response.java
@@ -22,7 +22,9 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.nio.channels.IllegalSelectorException;
import java.util.Collection;
+import java.util.ArrayList;
import java.util.Collections;
+import java.util.Enumeration;
import java.util.Locale;
import java.util.concurrent.atomic.AtomicInteger;
import javax.servlet.RequestDispatcher;
@@ -58,6 +60,15 @@ public class Response implements HttpServletResponse
{
private static final Logger LOG = Log.getLogger(Response.class);
+ /* ------------------------------------------------------------ */
+ public static Response getResponse(HttpServletResponse response)
+ {
+ if (response instanceof Response)
+ return (Response)response;
+ return HttpChannel.getCurrentHttpChannel().getResponse();
+ }
+
+
public enum OutputType
{
NONE, STREAM, WRITER
@@ -76,7 +87,7 @@ public class Response implements HttpServletResponse
*/
public final static String HTTP_ONLY_COMMENT = "__HTTP_ONLY__";
- private final HttpChannel _channel;
+ private final HttpChannel<?> _channel;
private final HttpOutput _out;
private final HttpFields _fields = new HttpFields();
private final AtomicInteger _include = new AtomicInteger();
@@ -905,6 +916,22 @@ public class Response implements HttpServletResponse
}
}
+ public void reset(boolean preserveCookies)
+ {
+ if (!preserveCookies)
+ reset();
+ else
+ {
+ ArrayList<String> cookieValues = new ArrayList<String>(5);
+ Enumeration<String> vals = _fields.getValues(HttpHeader.SET_COOKIE.asString());
+ while (vals.hasMoreElements())
+ cookieValues.add(vals.nextElement());
+ reset();
+ for (String v:cookieValues)
+ _fields.add(HttpHeader.SET_COOKIE, v);
+ }
+ }
+
public void resetForForward()
{
resetBuffer();
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/Server.java b/jetty-server/src/main/java/org/eclipse/jetty/server/Server.java
index 767ea8fa03..564e01b1dc 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/Server.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/Server.java
@@ -443,7 +443,7 @@ public class Server extends HandlerWrapper implements Attributes
baseRequest.setRequestURI(null);
baseRequest.setPathInfo(baseRequest.getRequestURI());
if (uri.getQuery()!=null)
- baseRequest.mergeQueryString(uri.getQuery());
+ baseRequest.mergeQueryString(uri.getQuery()); //we have to assume dispatch path and query are UTF8
}
final String target=baseRequest.getPathInfo();
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ShutdownHandler.java b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ShutdownHandler.java
index 3ddfad8b2f..c4f07a5d52 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ShutdownHandler.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/ShutdownHandler.java
@@ -50,7 +50,7 @@ import org.eclipse.jetty.util.log.Logger;
<pre>
public static void attemptShutdown(int port, String shutdownCookie) {
try {
- URL url = new URL("http://localhost:" + port + "/shutdown?cookie=" + shutdownCookie);
+ URL url = new URL("http://localhost:" + port + "/shutdown?token=" + shutdownCookie);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.getResponseCode();
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/session/SessionHandler.java b/jetty-server/src/main/java/org/eclipse/jetty/server/session/SessionHandler.java
index c277db35ab..4d34ef78b9 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/session/SessionHandler.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/session/SessionHandler.java
@@ -21,7 +21,6 @@ package org.eclipse.jetty.server.session;
import java.io.IOException;
import java.util.EnumSet;
import java.util.EventListener;
-
import javax.servlet.DispatcherType;
import javax.servlet.ServletException;
import javax.servlet.SessionTrackingMode;
@@ -39,7 +38,8 @@ import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger;
/* ------------------------------------------------------------ */
-/** SessionHandler.
+/**
+ * SessionHandler.
*/
public class SessionHandler extends ScopedHandler
{
@@ -52,9 +52,8 @@ public class SessionHandler extends ScopedHandler
private SessionManager _sessionManager;
/* ------------------------------------------------------------ */
- /** Constructor.
- * Construct a SessionHandler witha a HashSessionManager with a standard
- * java.util.Random generator is created.
+ /**
+ * Constructor. Construct a SessionHandler witha a HashSessionManager with a standard java.util.Random generator is created.
*/
public SessionHandler()
{
@@ -63,7 +62,8 @@ public class SessionHandler extends ScopedHandler
/* ------------------------------------------------------------ */
/**
- * @param manager The session manager
+ * @param manager
+ * The session manager
*/
public SessionHandler(SessionManager manager)
{
@@ -81,13 +81,14 @@ public class SessionHandler extends ScopedHandler
/* ------------------------------------------------------------ */
/**
- * @param sessionManager The sessionManager to set.
+ * @param sessionManager
+ * The sessionManager to set.
*/
public void setSessionManager(SessionManager sessionManager)
{
if (isStarted())
throw new IllegalStateException();
- if (sessionManager!=null)
+ if (sessionManager != null)
sessionManager.setSessionHandler(this);
updateBean(_sessionManager,sessionManager);
_sessionManager=sessionManager;
@@ -104,6 +105,7 @@ public class SessionHandler extends ScopedHandler
setSessionManager(new HashSessionManager());
super.doStart();
}
+
/* ------------------------------------------------------------ */
/*
* @see org.eclipse.thread.AbstractLifeCycle#doStop()
@@ -121,12 +123,11 @@ public class SessionHandler extends ScopedHandler
* @see org.eclipse.jetty.server.Handler#handle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, int)
*/
@Override
- public void doScope(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
- throws IOException, ServletException
+ public void doScope(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
- SessionManager old_session_manager=null;
- HttpSession old_session=null;
- HttpSession access=null;
+ SessionManager old_session_manager = null;
+ HttpSession old_session = null;
+ HttpSession access = null;
try
{
old_session_manager = baseRequest.getSessionManager();
@@ -141,54 +142,54 @@ public class SessionHandler extends ScopedHandler
}
// access any existing session
- HttpSession session=null;
- if (_sessionManager!=null)
+ HttpSession session = null;
+ if (_sessionManager != null)
{
- session=baseRequest.getSession(false);
- if (session!=null)
+ session = baseRequest.getSession(false);
+ if (session != null)
{
- if(session!=old_session)
+ if (session != old_session)
{
- access=session;
+ access = session;
HttpCookie cookie = _sessionManager.access(session,request.isSecure());
- if (cookie!=null ) // Handle changed ID or max-age refresh
+ if (cookie != null) // Handle changed ID or max-age refresh
baseRequest.getResponse().addCookie(cookie);
}
}
else
{
- session=baseRequest.recoverNewSession(_sessionManager);
- if (session!=null)
+ session = baseRequest.recoverNewSession(_sessionManager);
+ if (session != null)
baseRequest.setSession(session);
}
}
- if(LOG.isDebugEnabled())
+ if (LOG.isDebugEnabled())
{
- LOG.debug("sessionManager="+_sessionManager);
- LOG.debug("session="+session);
+ LOG.debug("sessionManager=" + _sessionManager);
+ LOG.debug("session=" + session);
}
// start manual inline of nextScope(target,baseRequest,request,response);
- if (_nextScope!=null)
- _nextScope.doScope(target,baseRequest,request, response);
- else if (_outerScope!=null)
- _outerScope.doHandle(target,baseRequest,request, response);
+ if (_nextScope != null)
+ _nextScope.doScope(target,baseRequest,request,response);
+ else if (_outerScope != null)
+ _outerScope.doHandle(target,baseRequest,request,response);
else
- doHandle(target,baseRequest,request, response);
+ doHandle(target,baseRequest,request,response);
// end manual inline (pathentic attempt to reduce stack depth)
}
finally
{
- if (access!=null)
+ if (access != null)
_sessionManager.complete(access);
HttpSession session = baseRequest.getSession(false);
- if (session!=null && old_session==null && session!=access)
+ if (session != null && old_session == null && session != access)
_sessionManager.complete(session);
- if (old_session_manager!=null && old_session_manager != _sessionManager)
+ if (old_session_manager != null && old_session_manager != _sessionManager)
{
baseRequest.setSessionManager(old_session_manager);
baseRequest.setSession(old_session);
@@ -201,91 +202,102 @@ public class SessionHandler extends ScopedHandler
* @see org.eclipse.jetty.server.Handler#handle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, int)
*/
@Override
- public void doHandle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
- throws IOException, ServletException
+ public void doHandle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
// start manual inline of nextHandle(target,baseRequest,request,response);
if (never())
nextHandle(target,baseRequest,request,response);
- else if (_nextScope!=null && _nextScope==_handler)
- _nextScope.doHandle(target,baseRequest,request, response);
- else if (_handler!=null)
- _handler.handle(target,baseRequest, request, response);
+ else if (_nextScope != null && _nextScope == _handler)
+ _nextScope.doHandle(target,baseRequest,request,response);
+ else if (_handler != null)
+ _handler.handle(target,baseRequest,request,response);
// end manual inline
}
/* ------------------------------------------------------------ */
- /** Look for a requested session ID in cookies and URI parameters
+ /**
+ * Look for a requested session ID in cookies and URI parameters
+ *
* @param baseRequest
* @param request
*/
protected void checkRequestedSessionId(Request baseRequest, HttpServletRequest request)
{
- String requested_session_id=request.getRequestedSessionId();
+ String requested_session_id = request.getRequestedSessionId();
SessionManager sessionManager = getSessionManager();
- if (requested_session_id!=null && sessionManager!=null)
+ if (requested_session_id != null && sessionManager != null)
{
- HttpSession session=sessionManager.getHttpSession(requested_session_id);
- if (session!=null && sessionManager.isValid(session))
+ HttpSession session = sessionManager.getHttpSession(requested_session_id);
+ if (session != null && sessionManager.isValid(session))
baseRequest.setSession(session);
return;
}
else if (!DispatcherType.REQUEST.equals(baseRequest.getDispatcherType()))
return;
- boolean requested_session_id_from_cookie=false;
- HttpSession session=null;
+ boolean requested_session_id_from_cookie = false;
+ HttpSession session = null;
// Look for session id cookie
if (_sessionManager.isUsingCookies())
{
- Cookie[] cookies=request.getCookies();
- if (cookies!=null && cookies.length>0)
+ Cookie[] cookies = request.getCookies();
+ if (cookies != null && cookies.length > 0)
{
final String sessionCookie=sessionManager.getSessionCookieConfig().getName();
- for (int i=0;i<cookies.length;i++)
+ for (int i = 0; i < cookies.length; i++)
{
if (sessionCookie.equalsIgnoreCase(cookies[i].getName()))
{
- requested_session_id=cookies[i].getValue();
+ requested_session_id = cookies[i].getValue();
requested_session_id_from_cookie = true;
- if(LOG.isDebugEnabled())
- LOG.debug("Got Session ID {} from cookie",requested_session_id);
- session=sessionManager.getHttpSession(requested_session_id);
- if (session!=null && sessionManager.isValid(session))
- break;
+ LOG.debug("Got Session ID {} from cookie",requested_session_id);
+
+ if (requested_session_id != null)
+ {
+ session = sessionManager.getHttpSession(requested_session_id);
+
+ if (session != null && sessionManager.isValid(session))
+ {
+ break;
+ }
+ }
+ else
+ {
+ LOG.warn("null session id from cookie");
+ }
}
}
}
}
- if (requested_session_id==null || session==null)
+ if (requested_session_id == null || session == null)
{
String uri = request.getRequestURI();
- String prefix=sessionManager.getSessionIdPathParameterNamePrefix();
- if (prefix!=null)
+ String prefix = sessionManager.getSessionIdPathParameterNamePrefix();
+ if (prefix != null)
{
int s = uri.indexOf(prefix);
- if (s>=0)
+ if (s >= 0)
{
- s+=prefix.length();
- int i=s;
- while (i<uri.length())
+ s += prefix.length();
+ int i = s;
+ while (i < uri.length())
{
- char c=uri.charAt(i);
- if (c==';'||c=='#'||c=='?'||c=='/')
+ char c = uri.charAt(i);
+ if (c == ';' || c == '#' || c == '?' || c == '/')
break;
i++;
}
requested_session_id = uri.substring(s,i);
requested_session_id_from_cookie = false;
- session=sessionManager.getHttpSession(requested_session_id);
- if(LOG.isDebugEnabled())
+ session = sessionManager.getHttpSession(requested_session_id);
+ if (LOG.isDebugEnabled())
LOG.debug("Got Session ID {} from URL",requested_session_id);
}
}
@@ -293,7 +305,7 @@ public class SessionHandler extends ScopedHandler
baseRequest.setRequestedSessionId(requested_session_id);
baseRequest.setRequestedSessionIdFromCookie(requested_session_id!=null && requested_session_id_from_cookie);
- if (session!=null && sessionManager.isValid(session))
+ if (session != null && sessionManager.isValid(session))
baseRequest.setSession(session);
}
@@ -303,14 +315,14 @@ public class SessionHandler extends ScopedHandler
*/
public void addEventListener(EventListener listener)
{
- if(_sessionManager!=null)
+ if (_sessionManager != null)
_sessionManager.addEventListener(listener);
}
/* ------------------------------------------------------------ */
public void clearEventListeners()
{
- if(_sessionManager!=null)
+ if (_sessionManager != null)
_sessionManager.clearEventListeners();
}
}

Back to the top