package org.appfuse.webapp.pages; import org.apache.wicket.RestartResponseException; import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.request.http.WebResponse; import org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices; import org.wicketstuff.annotation.mount.MountPath; import javax.servlet.http.Cookie; /** * Page for logging out from the system. * * @author Marcin ZajÄ…czkowski, 2011-02-06 */ @MountPath("logout") @AuthorizeInstantiation({"ROLE_ADMIN", "ROLE_USER"}) public class Logout extends WebPage { @Override protected void onInitialize() { super.onInitialize(); getSession().invalidate(); removeRememberMeCookie(); throw new RestartResponseException(Login.class); } private void removeRememberMeCookie() { ((WebResponse)getResponse()).clearCookie( new Cookie(TokenBasedRememberMeServices.SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, null)); } }