[Bedework-commit] r338 - in trunk/calendar3: common/src/edu/rpi/sss/util/jsp webcommon/src/org/bedework/webcommon

svnadmin at bedework.org svnadmin at bedework.org
Thu Apr 6 13:09:02 EDT 2006


Author: douglm
Date: 2006-04-06 13:09:01 -0400 (Thu, 06 Apr 2006)
New Revision: 338

Modified:
   trunk/calendar3/common/src/edu/rpi/sss/util/jsp/UtilAbstractAction.java
   trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java
Log:
Clean up and close on logout

Modified: trunk/calendar3/common/src/edu/rpi/sss/util/jsp/UtilAbstractAction.java
===================================================================
--- trunk/calendar3/common/src/edu/rpi/sss/util/jsp/UtilAbstractAction.java	2006-04-06 15:55:33 UTC (rev 337)
+++ trunk/calendar3/common/src/edu/rpi/sss/util/jsp/UtilAbstractAction.java	2006-04-06 17:09:01 UTC (rev 338)
@@ -312,7 +312,7 @@
          Everything is set up and ready to go. Execute something
          ---------------------------------------------------------------- */
 
-      forward = checkLogOut(request);
+      forward = checkLogOut(request, form);
       if (forward != null) {
         // Disable xslt filters
         response.setContentType("text/html");
@@ -655,18 +655,29 @@
    *               Check logout
    * ==================================================================== */
 
+  /** Clean up - we're about to logout
+   *
+   * @param request    HttpServletRequest
+   * @return boolean true for OK to log out. False - not allowed - ignore it.
+   */
+  protected boolean logOutCleanup(HttpServletRequest request,
+                                  UtilActionForm form) {
+    return true;
+  }
+
   /** Check for logout request.
    *
    * @param request    HttpServletRequest
    * @return null for continue, forwardLoggedOut to end session.
    */
-  protected String checkLogOut(HttpServletRequest request)
+  protected String checkLogOut(HttpServletRequest request,
+                               UtilActionForm form)
                throws Throwable {
     String temp = request.getParameter(requestLogout);
     if (temp != null) {
       HttpSession sess = request.getSession(false);
 
-      if (sess != null) {
+      if ((sess != null) && logOutCleanup(request, form)) {
         sess.invalidate();
       }
       return forwardLoggedOut;

Modified: trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java
===================================================================
--- trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java	2006-04-06 15:55:33 UTC (rev 337)
+++ trunk/calendar3/webcommon/src/org/bedework/webcommon/BwAbstractAction.java	2006-04-06 17:09:01 UTC (rev 338)
@@ -788,6 +788,35 @@
     return appname;
   }
 
+  /* We should probably return false for a portlet
+   *  (non-Javadoc)
+   * @see edu.rpi.sss.util.jsp.UtilAbstractAction#logOutCleanup(javax.servlet.http.HttpServletRequest)
+   */
+  protected boolean logOutCleanup(HttpServletRequest request,
+                                  UtilActionForm form) {
+    HttpSession hsess = request.getSession();
+    BwCallback cb = (BwCallback)hsess.getAttribute(BwCallback.cbAttrName);
+    
+    if (cb == null) {
+      if (form.getDebug()) {
+        debugMsg("No cb object for logout");
+      }
+    } else {
+      if (form.getDebug()) {
+        debugMsg("cb object found for logout");
+      }
+      try {
+        cb.out();
+      } catch (Throwable t) {}
+      
+      try {
+        cb.close();
+      } catch (Throwable t) {}
+    }
+    
+    return true;
+  }
+
   /** Ensure we have a CalAdminSvcI object for the given user.
    *
    * <p>For an admin client with a super user we may switch to a different



More information about the Bedework-commit mailing list