Index: lams_central/src/java/org/lamsfoundation/lams/web/PasswordAction.java
===================================================================
diff -u
--- lams_central/src/java/org/lamsfoundation/lams/web/PasswordAction.java (revision 0)
+++ lams_central/src/java/org/lamsfoundation/lams/web/PasswordAction.java (revision 0c587b087e83262e1742ed26a14a8d1d8fbe4656)
@@ -0,0 +1,56 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+/* $Id$ */
+package org.lamsfoundation.lams.web;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+/**
+ * @author jliew
+ *
+ * @struts:action path="/password"
+ * name="PasswordChangeActionForm"
+ * scope="request"
+ * validate="false"
+ *
+ * @struts:action-forward name="passwordChange" path=".passwordChange"
+ */
+public class PasswordAction extends Action {
+
+ public ActionForward execute(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+
+ PasswordChangeActionForm passwordChangeForm = (PasswordChangeActionForm)form;
+ passwordChangeForm.setLogin(request.getRemoteUser());
+ return mapping.findForward("passwordChange");
+ }
+}
Index: lams_central/src/java/org/lamsfoundation/lams/web/PasswordChangeAction.java
===================================================================
diff -u -rde1940e60766f8901436c6ab567c692685d5b35c -r0c587b087e83262e1742ed26a14a8d1d8fbe4656
--- lams_central/src/java/org/lamsfoundation/lams/web/PasswordChangeAction.java (.../PasswordChangeAction.java) (revision de1940e60766f8901436c6ab567c692685d5b35c)
+++ lams_central/src/java/org/lamsfoundation/lams/web/PasswordChangeAction.java (.../PasswordChangeAction.java) (revision 0c587b087e83262e1742ed26a14a8d1d8fbe4656)
@@ -27,31 +27,30 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.lamsfoundation.lams.usermanagement.service.UserManagementService;
-
-import org.springframework.web.context.support.WebApplicationContextUtils;
-import org.springframework.web.context.WebApplicationContext;
-
-
import org.apache.log4j.Logger;
-import org.apache.struts.action.ActionMessage;
-import org.apache.struts.action.ActionMessages;
-import org.apache.struts.action.ActionErrors;
+import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
-import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionMessage;
+import org.apache.struts.action.ActionMessages;
+import org.lamsfoundation.lams.usermanagement.User;
+import org.lamsfoundation.lams.usermanagement.service.UserManagementService;
+import org.lamsfoundation.lams.util.HashUtil;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
/**
* @author Fei Yang
*
* @struts:action path="/passwordChanged"
* name="PasswordChangeActionForm"
+ * scope="request"
* input=".passwordChange"
- * validate="true"
+ * validate="false"
*
* @struts:action-forward name="okay" path=".passwordChangeOk"
- * @struts:action-forward name="cancelled" path="/index.jsp"
+ * @struts:action-forward name="cancelled" path="/profile.do?method=view"
*/
public class PasswordChangeAction extends Action {
@@ -77,8 +76,8 @@
}
- ActionErrors errors = new ActionErrors();
-
+ ActionMessages errors = new ActionMessages();
+
PasswordChangeActionForm passwordChangeForm = (PasswordChangeActionForm) form;
if (errors.isEmpty())
@@ -89,24 +88,35 @@
String login = passwordChangeForm.getLogin();
String oldPassword = passwordChangeForm.getOldPassword();
String password = passwordChangeForm.getPassword();
+ String passwordConfirm = passwordChangeForm.getPasswordConfirm();
if ( loggedInUser == null || ! loggedInUser.equals(login) )
{
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("error.authorisation"));
}
else
{
-
- WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getSession(true).getServletContext());
+ //WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getSession(true).getServletContext());
+ WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(getServlet().getServletContext());
UserManagementService service = (UserManagementService)ctx.getBean("userManagementServiceTarget");
- if(!service.getUserByLogin(login).getPassword().equals(oldPassword))
+
+ User user = service.getUserByLogin(login);
+ if(!user.getPassword().equals(HashUtil.sha1(oldPassword)))
{
errors.add("oldPassword", new ActionMessage("error.oldpassword.mismatch"));
+ log.debug("old pass wrong");
}
- else
+ if(password == null || password.length() == 0 || !password.equals(passwordConfirm))
{
- service.updatePassword(login, password );
+ errors.add("password", new ActionMessage("error.newpassword.mismatch"));
+ log.debug("new pass wrong");
}
+ if (errors.isEmpty())
+ {
+ //service.updatePassword(login, HashUtil.sha1(password));
+ user.setPassword(HashUtil.sha1(password));
+ service.save(user);
+ }
}
} catch (Exception e) {
@@ -118,15 +128,17 @@
// -- Report any errors
if (!errors.isEmpty()) {
- addErrors(request, errors);
+ saveErrors(request,errors);
if (mapping.getInput()!=null)
{
passwordChangeForm.reset(mapping,request);
- return (new ActionForward(mapping.getInput()));
+ //return (new ActionForward(mapping.getInput()));
+ return (mapping.getInputForward());
}
// If no input page, use error forwarding
- return (mapping.findForward("error"));
+ return (mapping.findForward("error.system"));
}
+
return mapping.findForward("okay");
}
Index: lams_central/src/java/org/lamsfoundation/lams/web/PasswordChangeActionForm.java
===================================================================
diff -u -rde1940e60766f8901436c6ab567c692685d5b35c -r0c587b087e83262e1742ed26a14a8d1d8fbe4656
--- lams_central/src/java/org/lamsfoundation/lams/web/PasswordChangeActionForm.java (.../PasswordChangeActionForm.java) (revision de1940e60766f8901436c6ab567c692685d5b35c)
+++ lams_central/src/java/org/lamsfoundation/lams/web/PasswordChangeActionForm.java (.../PasswordChangeActionForm.java) (revision 0c587b087e83262e1742ed26a14a8d1d8fbe4656)
@@ -27,8 +27,6 @@
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
-import org.apache.struts.action.ActionMessage;
-import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
@@ -44,8 +42,6 @@
public static final String formName = "PasswordChangeActionForm"; // must match name in @struts:action section above
- private static Logger log = Logger.getLogger(PasswordChangeActionForm.class);
-
private String oldPassword;
private String password;
@@ -131,38 +127,4 @@
setPasswordConfirm(null);
}
- /**
- * Validate the properties that have been set from this HTTP request,
- * and return an ActionErrors
object that encapsulates any
- * validation errors that have been found. If no errors are found, return
- * null
or an ActionErrors
object with no
- * recorded error messages.
- *
- * @param mapping The mapping used to select this instance - * @param request The servlet request we are processing - */ - public ActionErrors validate(ActionMapping mapping, - HttpServletRequest request) { - ActionErrors errors = super.validate(mapping, request); - - if (errors == null) - errors = new ActionErrors(); - - if (getPassword() == null || getPassword().length() == 0 - || !getPassword().equals(getPasswordConfirm())) { - errors.add("password", new ActionMessage("error.newpassword.mismatch")); - } - - if (errors.isEmpty()) - return null; - else { - // don't want to pass back what they had as the password - setOldPassword(null); - setPassword(null); - setPasswordConfirm(null); - return errors; - } - - } - } \ No newline at end of file Index: lams_central/web/passwordChangeContent.jsp =================================================================== diff -u -r7a1f51f64555f4cd94274847196373c7f9f549f0 -r0c587b087e83262e1742ed26a14a8d1d8fbe4656 --- lams_central/web/passwordChangeContent.jsp (.../passwordChangeContent.jsp) (revision 7a1f51f64555f4cd94274847196373c7f9f549f0) +++ lams_central/web/passwordChangeContent.jsp (.../passwordChangeContent.jsp) (revision 0c587b087e83262e1742ed26a14a8d1d8fbe4656) @@ -8,11 +8,11 @@
- |
|
- |
|
- |
|
- |
|
+ |
+