|                                                                                                              1
 16  package org.mortbay.j2ee.session;
 17
 18
 20  import org.jfox.ioc.logger.Logger;
 21
 22
 24
 25  public class ValidatingInterceptor
 26    extends AroundInterceptor
 27  {
 28    protected static final Logger _log=Logger.getLogger(ValidatingInterceptor.class);
 29
 30    protected void before() throws IllegalStateException
  {if (_running) checkValid();} 31    protected void after() {}
 32
 33
 35    protected boolean _running=false;
 36
 37    public void start() {_log.trace("start()");_running=true;}
 38    public void stop()  {_log.trace("stop()"); _running=false;}
 39
 40    protected void
 41      checkValid()
 42      throws IllegalStateException
  43    {
 44      boolean valid=false;
 45      State state=getState();
 46      try
 47      {
 48        int mii=state.getMaxInactiveInterval();       int keep=mii;
 50        mii=mii<1?getManager().getStore().getActualMaxInactiveInterval():mii;       long lat=state.getLastAccessedTime();       long now=System.currentTimeMillis();
 54        int age=(int)((now-lat)/1000);
 56        valid=(age<mii);
 57        if (_log.isTraceEnabled()) _log.trace("session keep="+keep+", mii="+mii+", lat="+lat+", now="+now+", age="+age+", valid="+valid);
 58      }
 59      catch (java.rmi.NoSuchObjectException
  ignore) 60      {
 61            }
 63      catch (javax.ejb.NoSuchEntityException
  ignore) 64      {
 65            }
 67      catch (Exception
  e) 68      {
 69        _log.error("couldn't determine validity of HttpSession", e);
 70      }
 71
 72      if (!valid)
 73        throw new IllegalStateException
  ("invalid HttpSession - timed out"); 74    }
 75
 76    }
 78
                                                                                                                                                                                                             |                                                                       
 
 
 
 
 
                                                                                   Popular Tags                                                                                                                                                                                              |