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