/** * Copyright (c) 2009-2014 Câmara dos Deputados. Todos os direitos reservados. * * e-Democracia é um software livre; você pode redistribuí-lo e/ou modificá-lo dentro * dos termos da Licença Pública Geral Menor GNU como publicada pela Fundação do * Software Livre (FSF); na versão 2.1 da Licença, ou (na sua opinião) qualquer versão. * * Este programa é distribuído na esperança de que possa ser útil, mas SEM NENHUMA GARANTIA; * sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. * Veja a Licença Pública Geral Menor GNU para maiores detalhes. */ package br.gov.camara.edemocracia.hook.portlet.login; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.PortletConfig; import javax.portlet.PortletSession; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import com.liferay.portal.kernel.servlet.SessionErrors; import com.liferay.portal.kernel.struts.BaseStrutsPortletAction; import com.liferay.portal.kernel.struts.StrutsPortletAction; /** * Mantém o login do usuário na sessão * * @author p_7339 * */ public class CDLoginAction extends BaseStrutsPortletAction { @Override public void processAction(StrutsPortletAction originalStrutsPortletAction, PortletConfig portletConfig, ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { originalStrutsPortletAction.processAction(portletConfig, actionRequest, actionResponse); armazenaLoginNaSessaoSeAuthFalhar(actionRequest, actionResponse); } private void armazenaLoginNaSessaoSeAuthFalhar(ActionRequest actionRequest, ActionResponse actionResponse) { if (!SessionErrors.isEmpty(actionRequest)) { actionRequest.getPortletSession().setAttribute("login", actionRequest.getParameter("login")); actionResponse.setRenderParameter("saveLastPath", "0"); } } @Override public String render(StrutsPortletAction originalStrutsPortletAction, PortletConfig portletConfig, RenderRequest renderRequest, RenderResponse renderResponse) throws Exception { recuperaLoginDaSessao(renderRequest); return originalStrutsPortletAction.render(portletConfig, renderRequest, renderResponse); } private void recuperaLoginDaSessao(RenderRequest renderRequest) { String login = null; PortletSession session = renderRequest.getPortletSession(false); if (session != null) { login = (String) session.getAttribute("login"); session.removeAttribute("login"); } renderRequest.setAttribute("login", login); } }