Author: kfujino Date: Tue Mar 17 03:00:50 2015 New Revision: 1667169 URL: http://svn.apache.org/r1667169 Log: Add support for LAST_ACCESS_AT_START system property to SingleSignOn.
Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/authenticator/SingleSignOn.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/authenticator/SingleSignOn.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/authenticator/SingleSignOn.java?rev=1667169&r1=1667168&r2=1667169&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/authenticator/SingleSignOn.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/authenticator/SingleSignOn.java Tue Mar 17 03:00:50 2015 @@ -27,6 +27,7 @@ import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.Cookie; +import org.apache.catalina.Globals; import org.apache.catalina.Realm; import org.apache.catalina.Session; import org.apache.catalina.SessionEvent; @@ -58,6 +59,19 @@ import org.apache.tomcat.util.res.String */ public class SingleSignOn extends ValveBase implements SessionListener { + protected static final boolean LAST_ACCESS_AT_START; + + static { + String lastAccessAtStart = System.getProperty( + "org.apache.catalina.session.StandardSession.LAST_ACCESS_AT_START"); + if (lastAccessAtStart == null) { + LAST_ACCESS_AT_START = Globals.STRICT_SERVLET_COMPLIANCE; + } else { + LAST_ACCESS_AT_START = + Boolean.valueOf(lastAccessAtStart).booleanValue(); + } + } + //------------------------------------------------------ Constructor public SingleSignOn() { super(true); @@ -237,9 +251,14 @@ public class SingleSignOn extends ValveB // If so, we'll just remove the expired session from the // SSO. If the session was logged out, we'll log out // of all session associated with the SSO. + long idle; + if (LAST_ACCESS_AT_START) { + idle = session.getLastAccessedTimeInternal(); + } else { + idle = session.getThisAccessedTimeInternal(); + } if (((session.getMaxInactiveInterval() > 0) - && (System.currentTimeMillis() - session.getThisAccessedTimeInternal() >= - session.getMaxInactiveInterval() * 1000)) + && idle >= session.getMaxInactiveInterval() * 1000) || (Session.SESSION_PASSIVATED_EVENT.equals(event.getType())) || (!session.getManager().getContainer().getState().isAvailable())) { removeSession(ssoId, session); Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1667169&r1=1667168&r2=1667169&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Tue Mar 17 03:00:50 2015 @@ -159,6 +159,10 @@ when <code>org.apache.tomcat.InstanceManager</code> is not initialized. (violetagg) </fix> + <fix> + Add support for <code>LAST_ACCESS_AT_START</code> system property to + <code>SingleSignOn</code>. (kfujino) + </fix> </changelog> </subsection> <subsection name="Coyote"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org