Back to home page

OSCL-LXR

 
 

    


0001 //
0002 //  ========================================================================
0003 //  Copyright (c) 1995-2018 Mort Bay Consulting Pty. Ltd.
0004 //  ------------------------------------------------------------------------
0005 //  All rights reserved. This program and the accompanying materials
0006 //  are made available under the terms of the Eclipse Public License v1.0
0007 //  and Apache License v2.0 which accompanies this distribution.
0008 //
0009 //      The Eclipse Public License is available at
0010 //      http://www.eclipse.org/legal/epl-v10.html
0011 //
0012 //      The Apache License v2.0 is available at
0013 //      http://www.opensource.org/licenses/apache2.0.php
0014 //
0015 //  You may elect to redistribute this code under either of these licenses.
0016 //  ========================================================================
0017 //
0018 
0019 package org.eclipse.jetty.server.session;
0020 
0021 import javax.servlet.ServletException;
0022 import javax.servlet.http.HttpServletRequest;
0023 import javax.servlet.http.HttpServletResponse;
0024 import java.io.IOException;
0025 
0026 import org.eclipse.jetty.server.Request;
0027 import org.eclipse.jetty.server.SessionManager;
0028 import org.eclipse.jetty.server.handler.ScopedHandler;
0029 
0030 /**
0031  * Adapted from https://github.com/eclipse/jetty.project/blob/jetty-9.3.25.v20180904/
0032  *   jetty-server/src/main/java/org/eclipse/jetty/server/session/SessionHandler.java
0033  */
0034 public class SessionHandler extends ScopedHandler {
0035   private SessionManager _sessionManager;
0036 
0037   public SessionHandler() {
0038   }
0039 
0040   /**
0041    * @param manager
0042    *            The session manager
0043    */
0044   public SessionHandler(SessionManager manager) {
0045     setSessionManager(manager);
0046   }
0047 
0048   /**
0049    * @return Returns the sessionManager.
0050    */
0051   public SessionManager getSessionManager() {
0052     return _sessionManager;
0053   }
0054 
0055   /**
0056    * @param sessionManager
0057    *            The sessionManager to set.
0058    */
0059   public void setSessionManager(SessionManager sessionManager) {
0060     if (isStarted()) {
0061       throw new IllegalStateException();
0062     }
0063     if (sessionManager != null) {
0064       updateBean(_sessionManager,sessionManager);
0065       _sessionManager=sessionManager;
0066     }
0067   }
0068 
0069   /*
0070    * @see org.eclipse.jetty.server.Handler#handle(javax.servlet.http.HttpServletRequest,
0071    * javax.servlet.http.HttpServletResponse, int)
0072    */
0073   @Override
0074   public void doHandle(String target, Request baseRequest, HttpServletRequest request,
0075       HttpServletResponse response) throws IOException, ServletException {
0076     // start manual inline of nextHandle(target,baseRequest,request,response);
0077     if (_nextScope != null && _nextScope == _handler) {
0078       _nextScope.doHandle(target,baseRequest,request,response);
0079     } else if (_handler != null) {
0080       _handler.handle(target,baseRequest,request,response);
0081       // end manual inline
0082     }
0083   }
0084 
0085   public void clearEventListeners() {
0086     if (_sessionManager != null) {
0087       _sessionManager.clearEventListeners();
0088     }
0089   }
0090 }