--- /dev/null
+/**\r
+ * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a copy\r
+ * of this software and associated documentation files (the "Software"), to deal\r
+ * in the Software without restriction, including without limitation the rights\r
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
+ * copies of the Software, and to permit persons to whom the Software is\r
+ * furnished to do so, subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included in\r
+ * all copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r
+ * SOFTWARE.\r
+ */\r
+\r
+package com.liferay.portal.action;\r
+\r
+import javax.servlet.http.Cookie;\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+import javax.servlet.http.HttpSession;\r
+\r
+import org.apache.struts.action.Action;\r
+import org.apache.struts.action.ActionForm;\r
+import org.apache.struts.action.ActionForward;\r
+import org.apache.struts.action.ActionMapping;\r
+\r
+//import com.liferay.client.json.ruon.util.RUONUtil;\r
+import com.liferay.portal.events.EventsProcessorUtil;\r
+import com.liferay.portal.kernel.util.PropsKeys;\r
+import com.liferay.portal.kernel.util.StringPool;\r
+import com.liferay.portal.kernel.util.Validator;\r
+//import com.liferay.portal.model.User;\r
+import com.liferay.portal.struts.ActionConstants;\r
+import com.liferay.portal.util.CookieKeys;\r
+import com.liferay.portal.util.PortalUtil;\r
+import com.liferay.portal.util.PropsValues;\r
+/**\r
+ * <a href="LogoutAction.java.html"><b><i>View Source</i></b></a>\r
+ *\r
+ * @author Brian Wing Shun Chan\r
+ *\r
+ */\r
+public class LogoutAction extends Action {\r
+\r
+ public ActionForward execute(\r
+ ActionMapping mapping, ActionForm form, HttpServletRequest request,\r
+ HttpServletResponse response)\r
+ throws Exception {\r
+\r
+ try {\r
+ HttpSession session = request.getSession();\r
+\r
+ //User user = PortalUtil.getUser(request);\r
+\r
+ //RUONUtil.updatePresence(user.getUserId(), "chat-portlet", false);\r
+\r
+ EventsProcessorUtil.process(\r
+ PropsKeys.LOGOUT_EVENTS_PRE, PropsValues.LOGOUT_EVENTS_PRE,\r
+ request, response);\r
+\r
+ String domain = CookieKeys.getDomain(request);\r
+\r
+ Cookie companyIdCookie = new Cookie(\r
+ CookieKeys.COMPANY_ID, StringPool.BLANK);\r
+\r
+ if (Validator.isNotNull(domain)) {\r
+ companyIdCookie.setDomain(domain);\r
+ }\r
+\r
+ companyIdCookie.setMaxAge(0);\r
+ companyIdCookie.setPath(StringPool.SLASH);\r
+\r
+ Cookie idCookie = new Cookie(CookieKeys.ID, StringPool.BLANK);\r
+\r
+ if (Validator.isNotNull(domain)) {\r
+ idCookie.setDomain(domain);\r
+ }\r
+\r
+ idCookie.setMaxAge(0);\r
+ idCookie.setPath(StringPool.SLASH);\r
+\r
+ Cookie passwordCookie = new Cookie(\r
+ CookieKeys.PASSWORD, StringPool.BLANK);\r
+\r
+ if (Validator.isNotNull(domain)) {\r
+ passwordCookie.setDomain(domain);\r
+ }\r
+\r
+ passwordCookie.setMaxAge(0);\r
+ passwordCookie.setPath(StringPool.SLASH);\r
+\r
+ CookieKeys.addCookie(request, response, companyIdCookie);\r
+ CookieKeys.addCookie(request, response, idCookie);\r
+ CookieKeys.addCookie(request, response, passwordCookie);\r
+\r
+ try {\r
+ session.invalidate();\r
+ }\r
+ catch (Exception e) {\r
+ }\r
+\r
+ EventsProcessorUtil.process(\r
+ PropsKeys.LOGOUT_EVENTS_POST, PropsValues.LOGOUT_EVENTS_POST,\r
+ request, response);\r
+\r
+ return mapping.findForward(ActionConstants.COMMON_REFERER);\r
+ }\r
+ catch (Exception e) {\r
+ PortalUtil.sendError(e, request, response);\r
+\r
+ return null;\r
+ }\r
+ }\r
+\r
+}
\ No newline at end of file