Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions client/src/main/java/org/apache/cloudstack/ServerDaemon.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import java.net.URL;
import java.util.Properties;

import com.cloud.utils.Pair;
import org.apache.commons.daemon.Daemon;
import org.apache.commons.daemon.DaemonContext;
import org.eclipse.jetty.jmx.MBeanContainer;
Expand All @@ -40,6 +41,7 @@
import org.eclipse.jetty.server.handler.MovedContextHandler;
import org.eclipse.jetty.server.handler.RequestLogHandler;
import org.eclipse.jetty.server.handler.gzip.GzipHandler;
import org.eclipse.jetty.server.session.SessionHandler;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.eclipse.jetty.util.thread.ScheduledExecutorScheduler;
Expand Down Expand Up @@ -175,7 +177,8 @@ public void start() throws Exception {
createHttpConnector(httpConfig);

// Setup handlers
server.setHandler(createHandlers());
Pair<SessionHandler,HandlerCollection> pair = createHandlers();
server.setHandler(pair.second());

// Extra config options
server.setStopAtShutdown(true);
Expand All @@ -184,6 +187,8 @@ public void start() throws Exception {
createHttpsConnector(httpConfig);

server.start();
// Must set the session timeout after the server has started
pair.first().setMaxInactiveInterval(sessionTimeout * 60);
server.join();
}

Expand Down Expand Up @@ -236,11 +241,10 @@ private void createHttpsConnector(final HttpConfiguration httpConfig) {
}
}

private HandlerCollection createHandlers() {
private Pair<SessionHandler,HandlerCollection> createHandlers() {
final WebAppContext webApp = new WebAppContext();
webApp.setContextPath(contextPath);
webApp.setInitParameter("org.eclipse.jetty.servlet.Default.dirAllowed", "false");
webApp.getSessionHandler().setMaxInactiveInterval(sessionTimeout * 60);

// GZIP handler
final GzipHandler gzipHandler = new GzipHandler();
Expand All @@ -259,14 +263,14 @@ private HandlerCollection createHandlers() {
final RequestLogHandler log = new RequestLogHandler();
log.setRequestLog(createRequestLog());

// Redirect root context handler
// Redirect root context handler_war
MovedContextHandler rootRedirect = new MovedContextHandler();
rootRedirect.setContextPath("/");
rootRedirect.setNewContextURL(contextPath);
rootRedirect.setPermanent(true);

// Put rootRedirect at the end!
return new HandlerCollection(log, gzipHandler, rootRedirect);
return new Pair<>(webApp.getSessionHandler(), new HandlerCollection(log, gzipHandler, rootRedirect));
}

private RequestLog createRequestLog() {
Expand Down