ICEfaces
  1. ICEfaces
  2. ICE-6005

Detect and implement session expiry notification

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0-Beta1
    • Fix Version/s: 2.0-Beta2, 2.0.0
    • Component/s: Bridge, Framework
    • Labels:
      None
    • Environment:
      ICEfaces 2.0

      Description

      With a stock Mojarra application, when a session expires there are different behaviours depending on how the session expiry was triggered and whether or not Ajax and ICEfaces are involved. More detailed information is available in http://jira.icefaces.org/browse/ICE-5997.

      In any event, most session expiration ends up triggering a ViewExpiredException. It would be better to handle actual session expiration in a more explicit way. This involves accurately determining when a session expiry has occurred and then allowing that information to be handled by the server and/or client as appropriate.

        Issue Links

          Activity

          Deryk Sinotte created issue -
          Deryk Sinotte made changes -
          Field Original Value New Value
          Salesforce Case []
          Fix Version/s 2.1 [ 10241 ]
          Assignee Deryk Sinotte [ deryk.sinotte ]
          Hide
          Deryk Sinotte added a comment -

          We likely need a custom ExceptionHandler for proper handling of session expiry exceptions.

          Show
          Deryk Sinotte added a comment - We likely need a custom ExceptionHandler for proper handling of session expiry exceptions.
          Deryk Sinotte made changes -
          Link This issue depends on ICE-6004 [ ICE-6004 ]
          Deryk Sinotte made changes -
          Link This issue blocks ICE-5779 [ ICE-5779 ]
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #22401 Thu Sep 23 09:30:00 MDT 2010 deryk.sinotte ICE-6005: enhance detection and notification of session expiry
          Files Changed
          Commit graph ADD /icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/application/SessionExpiredException.java
          Commit graph DEL /icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/impl/context/SessionExpiredException.java
          Commit graph MODIFY /icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/impl/application/SessionTimeoutMonitor.java
          Commit graph ADD /icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/impl/application/SessionExpiredListener.java
          Commit graph MODIFY /icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/util/EnvUtils.java
          Commit graph DEL /icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/impl/context/SessionExpiredListener.java
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #22402 Thu Sep 23 09:31:02 MDT 2010 deryk.sinotte ICE-6005: enhance session invalidation test case
          Files Changed
          Commit graph MODIFY /icefaces2/trunk/icefaces/samples/test/invalidate/src/main/webapp/ice.xhtml
          Commit graph MODIFY /icefaces2/trunk/icefaces/samples/test/invalidate/src/main/java/org/icefaces/test/invalidate/TestBean.java
          Commit graph MODIFY /icefaces2/trunk/icefaces/samples/test/invalidate/src/main/webapp/WEB-INF/web.xml
          Repository Revision Date User Message
          ICEsoft Public SVN Repository #22404 Thu Sep 23 10:45:13 MDT 2010 deryk.sinotte ICE-6005: check for null in request servlet path and path info values
          Files Changed
          Commit graph MODIFY /icefaces2/trunk/icefaces/core/src/main/java/org/icefaces/util/EnvUtils.java
          Hide
          Deryk Sinotte added a comment -

          I added a custom ExceptionHandler to help turn ViewExpiryExceptions into SessionExpiredExceptions when a view can't be found during the Restore View phase - this is typically because the session is either invalid or new.

          I also tweaked the existing logic around using push and the resource handler to use the SessionTimeoutListener that we already had to invalidate the session and use Push if it's available. This puts the code in a more logical place and we now see, if ICEpush is running, Session Expired messages pushed to all views of that session.

          Show
          Deryk Sinotte added a comment - I added a custom ExceptionHandler to help turn ViewExpiryExceptions into SessionExpiredExceptions when a view can't be found during the Restore View phase - this is typically because the session is either invalid or new. I also tweaked the existing logic around using push and the resource handler to use the SessionTimeoutListener that we already had to invalidate the session and use Push if it's available. This puts the code in a more logical place and we now see, if ICEpush is running, Session Expired messages pushed to all views of that session.
          Deryk Sinotte made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Fix Version/s 2.0-Beta2 [ 10242 ]
          Fix Version/s 2.1 [ 10241 ]
          Resolution Fixed [ 1 ]
          Ken Fyten made changes -
          Fix Version/s 2.0.0 [ 10230 ]
          Ken Fyten made changes -
          Status Resolved [ 5 ] Closed [ 6 ]

            People

            • Assignee:
              Deryk Sinotte
              Reporter:
              Deryk Sinotte
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: