Update of /var/cvs/contributions/CMSContainer_Portlets/portlets-login/src/java/com/finalist/cmsc/portlets In directory james.mmbase.org:/tmp/cvs-serv31885/portlets-login/src/java/com/finalist/cmsc/portlets
Modified Files: LoginPortlet.java Log Message: CMSC-1320 - LoginPortlet did not correctly check for input of the user. No returns correct message. See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-login/src/java/com/finalist/cmsc/portlets See also: http://www.mmbase.org/jira/browse/CMSC-1320 Index: LoginPortlet.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Portlets/portlets-login/src/java/com/finalist/cmsc/portlets/LoginPortlet.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -b -r1.16 -r1.17 --- LoginPortlet.java 5 Mar 2009 14:27:02 -0000 1.16 +++ LoginPortlet.java 5 Mar 2009 15:14:59 -0000 1.17 @@ -41,48 +41,66 @@ * @author Remco Bos */ public class LoginPortlet extends AbstractLoginPortlet { + + public static final String ERRORMESSAGE = "errormessage"; + protected static final String ACTION_PARAMETER = "action"; - private static final String ACEGI_SECURITY_FORM_USERNAME_KEY = "j_username"; - private static final String ACEGI_SECURITY_FORM_PASSWORD_KEY = "j_password"; - private static final String EMAIL_TEMPLATE_DIR = "../templates/view/login/forgotpassword.txt"; + protected static final String ACEGI_SECURITY_FORM_USERNAME_KEY = "j_username"; + protected static final String ACEGI_SECURITY_FORM_PASSWORD_KEY = "j_password"; + protected static final String EMAIL_TEMPLATE_DIR = "../templates/view/login/forgotpassword.txt"; + + protected static final String SEND_PASSWORD = "send_password"; - private static final String SEND_PASSWORD = "send_password"; + protected static final Log log = LogFactory.getLog(LoginPortlet.class); - private static final Log log = LogFactory.getLog(LoginPortlet.class); protected void doEditDefaults(RenderRequest req, RenderResponse res) throws IOException, PortletException { super.DEFAULT_EMAIL_CONFIRM_TEMPLATE_DIR = EMAIL_TEMPLATE_DIR; super.doEditDefaults(req, res); } + @Override public void processView(ActionRequest request, ActionResponse response) throws PortletException, IOException { String action = request.getParameter(ACTION_PARAMETER); PortletPreferences preferences = request.getPreferences(); + if ("login".equals(action)) { String userName = request.getParameter(ACEGI_SECURITY_FORM_USERNAME_KEY); String password = request.getParameter(ACEGI_SECURITY_FORM_PASSWORD_KEY); String send_password = request.getParameter(SEND_PASSWORD); + if (StringUtils.isEmpty(send_password)) { request.getPortletSession().setAttribute("username", userName, PortletSession.APPLICATION_SCOPE); + if (StringUtils.isNotBlank(userName) && StringUtils.isNotBlank(password)) { Community.login(userName, password); + } else { + if (StringUtils.isBlank(userName)) { + response.setRenderParameter(ERRORMESSAGE, "register.email.empty"); + } else { + response.setRenderParameter(ERRORMESSAGE, "register.password.empty"); } + + return; //Because one of the required fields are empty, there is nothing to check anymore + } + if (Community.isAuthenticated()) { log.info(String.format("Login successful for user %s", userName)); } else { - PersonService personHibernateService = (PersonService) ApplicationContextFactory - .getBean("personService"); + + PersonService personHibernateService = (PersonService) ApplicationContextFactory.getBean("personService"); Person person = personHibernateService.getPersonByUserId(userName); + if (person == null) { log.info(String.format("Login failed for user %s", userName)); - response.setRenderParameter("errormessage", "login.failed"); + response.setRenderParameter(ERRORMESSAGE, "login.failed"); } else if (RegisterStatus.UNCONFIRMED.getName().equalsIgnoreCase(person.getActive())) { - response.setRenderParameter("errormessage", "view.account.unconfirmed"); + response.setRenderParameter(ERRORMESSAGE, "view.account.unconfirmed"); } else if (RegisterStatus.BLOCKED.getName().equalsIgnoreCase(person.getActive())) { - response.setRenderParameter("errormessage", "view.account.blocked"); + response.setRenderParameter(ERRORMESSAGE, "view.account.blocked"); } } } @@ -92,6 +110,7 @@ } else if ("logout".equals(action)) { request.getPortletSession().removeAttribute("username", PortletSession.APPLICATION_SCOPE); Community.logout(); + } else if ("send_password".equals(action)) { //TODO send password String email = request.getParameter("username"); @@ -154,10 +173,10 @@ protected void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException { String template; - String error = request.getParameter("errormessage"); + String error = request.getParameter(ERRORMESSAGE); String send_password = request.getParameter(SEND_PASSWORD); if (StringUtils.isNotBlank(error)) { - request.setAttribute("errormessage", error); + request.setAttribute(ERRORMESSAGE, error); } if (Community.isAuthenticated()) { template = "login/logout.jsp"; @@ -170,6 +189,7 @@ } doInclude("view", template, request, response); } + protected String getEmailBody(String emailText,ActionRequest request, Authentication authentication, Person person) { super.DEFAULT_EMAIL_CONFIRM_TEMPLATE_DIR = EMAIL_TEMPLATE_DIR; _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs