package org.beanfuse.webapp.security.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.dispatcher.SessionMap; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import org.beanfuse.security.Authentication; import org.beanfuse.security.monitor.SecurityMonitor; import org.beanfuse.struts2.route.Action; import org.beanfuse.utils.web.CookieUtils; import com.opensymphony.xwork2.ActionContext; /** * @author dell,chaostone */ public class LogoutAction extends SecurityAction implements ServletRequestAware, ServletResponseAware { private HttpServletRequest request; private HttpServletResponse response; private SecurityMonitor securityMonitor; public String index() { CookieUtils.deleteCookieByName(request, response, Authentication.PASSWORD); securityMonitor.logout(request.getSession()); ((SessionMap) ActionContext.getContext().getSession()).invalidate(); return redirect(new Action(IndexAction.class, "index"), ""); } public void setServletResponse(HttpServletResponse response) { this.response = response; } public void setServletRequest(HttpServletRequest request) { this.request = request; } public void setSecurityMonitor(SecurityMonitor securityMonitor) { this.securityMonitor = securityMonitor; } }