Author: prabath
Date: Wed Feb 13 06:38:33 2008
New Revision: 13703

Log:

clear cookies on logout

Modified:
   
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/LogoutAction.java

Modified: 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/LogoutAction.java
==============================================================================
--- 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/LogoutAction.java
 (original)
+++ 
trunk/solutions/identity/modules/user-ui/src/main/java/org/wso2/solutions/identity/user/ui/action/LogoutAction.java
 Wed Feb 13 06:38:33 2008
@@ -18,6 +18,11 @@
 
 import java.util.Map;
 
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.struts2.StrutsStatics;
 import org.wso2.solutions.identity.admin.ReportAdmin;
 import org.wso2.solutions.identity.persistence.dataobject.ActionDO;
 import org.wso2.solutions.identity.user.ui.UIConstants;
@@ -30,11 +35,42 @@
     private static final long serialVersionUID = -2506833829058717823L;
 
     public String execute() throws Exception {
-        Map session = ActionContext.getContext().getSession();
-        String username = (String)session.get(UIConstants.USER);
+
+        ActionContext context = null;
+        HttpServletRequest request = null;
+        HttpServletResponse response = null;
+
+        context = ActionContext.getContext();
+        request = (HttpServletRequest) context.get(StrutsStatics.HTTP_REQUEST);
+        response = (HttpServletResponse) context
+                .get(StrutsStatics.HTTP_RESPONSE);
+
+        Map session = context.getSession();
+        String username = (String) session.get(UIConstants.USER);
         session.remove(UIConstants.USER);
         session.remove(UIConstants.PPID);
-        String msg = getText("successful_for", new String[] {username});
+
+        // Delete user login cookies on sign-out
+        Cookie[] cookies = request.getCookies();
+
+        if (cookies != null) {
+            Cookie curCookie = null;
+            for (int x = 0; x < cookies.length; x++) {
+                curCookie = cookies[x];
+                if (curCookie.getName().equalsIgnoreCase("rememberme")) {
+                    curCookie.setMaxAge(0);
+                    response.addCookie(curCookie);
+                } else if (curCookie.getName().equalsIgnoreCase("openid")) {
+                    curCookie.setMaxAge(0);
+                    response.addCookie(curCookie);
+                } else if (curCookie.getName().equalsIgnoreCase("password")) {
+                    curCookie.setMaxAge(0);
+                    response.addCookie(curCookie);
+                }
+            }
+        }
+
+        String msg = getText("successful_for", new String[] { username });
         ReportAdmin.record(username, ActionDO.ACTION_USER_LOG_OUT, msg);
         return SUCCESS;
     }

_______________________________________________
Identity-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/identity-dev

Reply via email to