(sorry my poor english)
I configure : Shiro(*DefaultWebSessionManager,
ExecutorServiceSessionValidationScheduler) + Spring Integration + Servlet
*

But doesn't execute
  sessionManager.validateSessions(); or SessionListener.onExpiration(..);

In Log4J debug mode, logs are ...
  *....*
*  .... some client connect*
  2011-08-26 16:52:00 DEBUG ExecutorServiceSessionValidationScheduler.?(?) |
Executing session validation...
  *.... no more log*

And see call hierarchy in the source...
ExecutorServiceSessionValidationScheduler.run() line 99 : print "Executing
session validation..."
AbstractValidatingSessionManager.validateSessions() line 265 : print
"Validating all active sessions..."
but doesn't print "Validating all active sessions..."

Also from SessionListener point of view, i write code
 log.debug($methodname) in each method

2011-08-26 16:47:01 DEBUG P2PSessionListenerAdapter.?(?) | onStart
*... no more log (not print onExpiration)*
*... but same client reconnect at some time later( >= **

globalSessionTimeout)
** *
2011-08-26 18:09:52 DEBUG P2PSessionListenerAdapter.?(?) | onExpiration

Did i some configuration missing or wrong?
below my spring+shiro configuration(no ssl). Please help me. thanks.

  <!-- =========================================================
       Shiro Core Components - Not Spring Specific
       ========================================================= -->
  <bean id="securityManager"
class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
    <property name="cacheManager" ref="cacheManager"/>
    <property name="sessionMode" value="native"/>
    <property name="sessionManager" ref="sessionManager"/>
    <property name="realm" ref="jdbcRealm"/>
  </bean>

  <bean id="sessionManager"
      class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
    <property name="sessionDAO">
      <bean
class="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO"/>
    </property>
    <property name="sessionValidationScheduler">
      <bean
class="org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler">
        <property name="interval" value="300000"/>
      </bean>
    </property>
    <property name="globalSessionTimeout" value="180000"/>
    <property name="sessionListeners">
      <list>
        <ref local="p2pSessionListener"/>
      </list>
    </property>

    <property name="sessionValidationSchedulerEnabled" value="true"/>
    <property name="deleteInvalidSessions" value="true"/>

  </bean>

  <bean id="p2pSessionListener"
      class="com.acme.session.P2PSessionListenerAdapter"/>

  <bean id="cacheManager"
class="org.apache.shiro.cache.ehcache.EhCacheManager">
  </bean>

  <bean id="jdbcRealm" class="org.apache.shiro.realm.jdbc.JdbcRealm">
    <property name="name" value="jdbcRealm"/>
    <property name="dataSource" ref="dataSource"/>
    <!-- Omit -->
  </bean>


  <!-- =========================================================
       Shiro Spring-specific integration
       ========================================================= -->

  <bean id="lifecycleBeanPostProcessor"
      class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>

  <bean
class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"
      depends-on="lifecycleBeanPostProcessor"/>
  <bean
class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
    <property name="securityManager" ref="securityManager"/>
  </bean>

  <bean id="shiroFilter"
class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
    <property name="securityManager" ref="securityManager"/>
    <property name="unauthorizedUrl" value="/unauthorized.html"/>
    <property name="filterChainDefinitions">
      <value>
        <!-- Omit -->
      </value>
    </property>
  </bean>

Reply via email to