You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kf...@apache.org on 2015/03/17 04:00:50 UTC

svn commit: r1667169 - in /tomcat/tc7.0.x/trunk: java/org/apache/catalina/authenticator/SingleSignOn.java webapps/docs/changelog.xml

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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org