craigmcc    00/11/17 17:34:00

  Modified:    src/share/org/apache/tomcat/request Tag: tomcat_32
                        SessionInterceptor.java
               src/share/org/apache/tomcat/session Tag: tomcat_32
                        StandardManager.java
                        StandardSessionInterceptor.java
               src/share/org/apache/tomcat/util Tag: tomcat_32
                        SessionIdGenerator.java SessionUtil.java
  Log:
  Enable the use of load balancing (behind Apache), even when URL rewriting
  is used to maintain session state.  A *big* thank you to Shai Fultheim for
  creating and testing this patch, and then submitting it multiple times
  because the underlying source files were being changed for other fixes.
  
  Submitted by: Shai Fultheim <[EMAIL PROTECTED]>
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.24.2.3  +2 -26     
jakarta-tomcat/src/share/org/apache/tomcat/request/SessionInterceptor.java
  
  Index: SessionInterceptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/request/SessionInterceptor.java,v
  retrieving revision 1.24.2.2
  retrieving revision 1.24.2.3
  diff -u -r1.24.2.2 -r1.24.2.3
  --- SessionInterceptor.java   2000/11/11 02:07:02     1.24.2.2
  +++ SessionInterceptor.java   2000/11/18 01:33:59     1.24.2.3
  @@ -75,6 +75,8 @@
    * This implementation only handles Cookies sessions, please extend or
    * add new interceptors for other methods.
    *
  + * @author [EMAIL PROTECTED]
  + * @author Shai Fultheim [[EMAIL PROTECTED]]
    */
   public class SessionInterceptor extends  BaseInterceptor
   {
  @@ -112,8 +114,6 @@
   
        if ((foundAt=uri.indexOf(sig))!=-1){
            sessionId=uri.substring(foundAt+sig.length());
  -         // I hope the optimizer does it's job:-)
  -         sessionId = fixSessionId( request, sessionId );
   
            // rewrite URL, do I need to do anything more?
            request.setRequestURI(uri.substring(0, foundAt));
  @@ -126,24 +126,6 @@
        return 0;
       }
   
  -    /** Fix the session id. If the session is not valid return null.
  -     *  It will also clean up the session from load-balancing strings.
  -     * @return sessionId, or null if not valid
  -     */
  -    private String fixSessionId(Request request, String sessionId){
  -     // GS, We piggyback the JVM id on top of the session cookie
  -     // Separate them ...
  -
  -     if( debug>0 ) cm.log(" Orig sessionId  " + sessionId );
  -     if (null != sessionId) {
  -         int idex = sessionId.lastIndexOf(SESSIONID_ROUTE_SEP);
  -         if(idex > 0) {
  -             sessionId = sessionId.substring(0, idex);
  -         }
  -     }
  -     return sessionId;
  -    }
  -
       public int beforeBody( Request rrequest, Response response ) {
        String reqSessionId = response.getSessionId();
        if( debug>0 ) cm.log("Before Body " + reqSessionId );
  @@ -157,12 +139,6 @@
           String sessionPath = rrequest.getContext().getPath();
           if(sessionPath.length() == 0) {
               sessionPath = "/";
  -        }
  -
  -        // GS, piggyback the jvm route on the session id.
  -        String jvmRoute = rrequest.getJvmRoute();
  -        if(null != jvmRoute) {
  -            reqSessionId = reqSessionId + SESSIONID_ROUTE_SEP + jvmRoute;
           }
   
        Cookie cookie = new Cookie("JSESSIONID",
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.11.2.1  +7 -6      
jakarta-tomcat/src/share/org/apache/tomcat/session/Attic/StandardManager.java
  
  Index: StandardManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/session/Attic/StandardManager.java,v
  retrieving revision 1.11
  retrieving revision 1.11.2.1
  diff -u -r1.11 -r1.11.2.1
  --- StandardManager.java      2000/06/18 20:14:13     1.11
  +++ StandardManager.java      2000/11/18 01:33:59     1.11.2.1
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/session/Attic/StandardManager.java,v
 1.11 2000/06/18 20:14:13 jon Exp $
  - * $Revision: 1.11 $
  - * $Date: 2000/06/18 20:14:13 $
  + * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/session/Attic/StandardManager.java,v
 1.11.2.1 2000/11/18 01:33:59 craigmcc Exp $
  + * $Revision: 1.11.2.1 $
  + * $Date: 2000/11/18 01:33:59 $
    *
    * ====================================================================
    *
  @@ -102,7 +102,8 @@
    * @author Craig R. McClanahan
    * @author [EMAIL PROTECTED]
    * @author <a href="mailto:[EMAIL PROTECTED]">Jon S. Stevens</a>
  - * @version $Revision: 1.11 $ $Date: 2000/06/18 20:14:13 $
  + * @author Shai Fultheim [[EMAIL PROTECTED]]
  + * @version $Revision: 1.11.2.1 $ $Date: 2000/11/18 01:33:59 $
    */
   public final class StandardManager implements Runnable  {
       // ----------------------------------------------------- Instance Variables
  @@ -351,7 +352,7 @@
        * @exception IllegalStateException if a new session cannot be
        *  instantiated for any reason
        */
  -    public HttpSession getNewSession() {
  +    public HttpSession getNewSession(String jsIdent) {
   
        if ((maxActiveSessions >= 0) &&
          (sessions.size() >= maxActiveSessions))
  @@ -375,7 +376,7 @@
        session.setValid(true);
        session.setCreationTime(System.currentTimeMillis());
        session.setMaxInactiveInterval(this.maxInactiveInterval);
  -     session.setId(SessionUtil.generateSessionId());
  +     session.setId(SessionUtil.generateSessionId(jsIdent));
   
        return (session);
       }
  
  
  
  1.5.2.3   +2 -16     
jakarta-tomcat/src/share/org/apache/tomcat/session/StandardSessionInterceptor.java
  
  Index: StandardSessionInterceptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/session/StandardSessionInterceptor.java,v
  retrieving revision 1.5.2.2
  retrieving revision 1.5.2.3
  diff -u -r1.5.2.2 -r1.5.2.3
  --- StandardSessionInterceptor.java   2000/11/15 04:19:19     1.5.2.2
  +++ StandardSessionInterceptor.java   2000/11/18 01:33:59     1.5.2.3
  @@ -86,6 +86,7 @@
    *
    * @author [EMAIL PROTECTED]
    * @author [EMAIL PROTECTED] (fixed it so that URL session ID is used)
  + * @author Shai Fultheim [[EMAIL PROTECTED]]
    */
   public final class StandardSessionInterceptor  extends BaseInterceptor {
       int manager_note;
  @@ -145,7 +146,6 @@
   
                if (cookie.getName().equals("JSESSIONID")) {
                        sessionId = cookie.getValue();
  -                     sessionId = fixSessionId( request, sessionId );
                           if (debug > 0) log("Found session id cookie " + sessionId);
                           request.setRequestedSessionId( sessionId );
                           request.setSessionIdSource( Request.SESSIONID_FROM_COOKIE );
  @@ -174,7 +174,7 @@
   
        if( request.getSession( false ) != null )
            return 0; // somebody already set the session
  -     HttpSession newS=sM.getNewSession();
  +     HttpSession newS=sM.getNewSession(request.getJvmRoute());
        request.setSession( newS );
        return 0;
       }
  @@ -237,20 +237,6 @@
        } catch(IllegalStateException ex ) {
            throw new TomcatException( ex );
        }
  -    }
  -
  -    private String fixSessionId(Request request, String sessionId){
  -     // GS, We piggyback the JVM id on top of the session cookie
  -     // Separate them ...
  -
  -     if( debug>0 ) cm.log(" Orig sessionId  " + sessionId );
  -     if (null != sessionId) {
  -         int idex = sessionId.lastIndexOf(SESSIONID_ROUTE_SEP);
  -         if(idex > 0) {
  -             sessionId = sessionId.substring(0, idex);
  -         }
  -     }
  -     return sessionId;
       }
   
   }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.3.2.2   +6 -5      
jakarta-tomcat/src/share/org/apache/tomcat/util/SessionIdGenerator.java
  
  Index: SessionIdGenerator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/SessionIdGenerator.java,v
  retrieving revision 1.3.2.1
  retrieving revision 1.3.2.2
  diff -u -r1.3.2.1 -r1.3.2.2
  --- SessionIdGenerator.java   2000/08/23 20:23:16     1.3.2.1
  +++ SessionIdGenerator.java   2000/11/18 01:33:59     1.3.2.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/SessionIdGenerator.java,v 
1.3.2.1 2000/08/23 20:23:16 jiricka Exp $
  - * $Revision: 1.3.2.1 $
  - * $Date: 2000/08/23 20:23:16 $
  + * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/SessionIdGenerator.java,v 
1.3.2.2 2000/11/18 01:33:59 craigmcc Exp $
  + * $Revision: 1.3.2.2 $
  + * $Date: 2000/11/18 01:33:59 $
    *
    * ====================================================================
    *
  @@ -76,6 +76,7 @@
    * @author James Duncan Davidson [[EMAIL PROTECTED]]
    * @author Jason Hunter [[EMAIL PROTECTED]]
    * @author Jon S. Stevens <a href="mailto:[EMAIL PROTECTED]">[EMAIL PROTECTED]</a>
  + * @author Shai Fultheim [[EMAIL PROTECTED]]
    */
   public class SessionIdGenerator {
   
  @@ -172,7 +173,7 @@
           return sessionId.toString();
       }
   
  -    public static synchronized String generateId() {
  -        return getIdentifier(null);
  +    public static synchronized String generateId(String jsIdent) {
  +        return getIdentifier(jsIdent);
       }
   }
  
  
  
  1.5.2.2   +7 -6      
jakarta-tomcat/src/share/org/apache/tomcat/util/Attic/SessionUtil.java
  
  Index: SessionUtil.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/Attic/SessionUtil.java,v
  retrieving revision 1.5.2.1
  retrieving revision 1.5.2.2
  diff -u -r1.5.2.1 -r1.5.2.2
  --- SessionUtil.java  2000/08/25 23:01:15     1.5.2.1
  +++ SessionUtil.java  2000/11/18 01:34:00     1.5.2.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/Attic/SessionUtil.java,v 
1.5.2.1 2000/08/25 23:01:15 nacho Exp $
  - * $Revision: 1.5.2.1 $
  - * $Date: 2000/08/25 23:01:15 $
  + * $Header: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/util/Attic/SessionUtil.java,v 
1.5.2.2 2000/11/18 01:34:00 craigmcc Exp $
  + * $Revision: 1.5.2.2 $
  + * $Date: 2000/11/18 01:34:00 $
    *
    * ====================================================================
    *
  @@ -74,7 +74,8 @@
    * <code>Session</code> implementations.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.5.2.1 $ $Date: 2000/08/25 23:01:15 $
  + * @author Shai Fultheim [[EMAIL PROTECTED]]
  + * @version $Revision: 1.5.2.2 $ $Date: 2000/11/18 01:34:00 $
    */
   
   public final class SessionUtil {
  @@ -175,8 +176,8 @@
       /**
        * Generate and return a new session identifier.
        */
  -    public static String generateSessionId() {
  -        return SessionIdGenerator.generateId();
  +    public static String generateSessionId(String jsIdent) {
  +        return SessionIdGenerator.generateId(jsIdent);
       }
   
       /**
  
  
  

Reply via email to