From d1231c63669f4bc3643985b9032de7f998612e08 Mon Sep 17 00:00:00 2001
From: Jason Pyeron <jpyeron@pdinc.us>
Date: Sun, 19 Aug 2012 21:35:52 -0400
Subject: [PATCH] fixed build to allow builds where a proxy is needed for access to outside resources see: http://ant.apache.org/manual/proxy.html

---
 src/com/gitblit/wicket/pages/ChangePasswordPage.java |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/com/gitblit/wicket/pages/ChangePasswordPage.java b/src/com/gitblit/wicket/pages/ChangePasswordPage.java
index fec2414..cbe732f 100644
--- a/src/com/gitblit/wicket/pages/ChangePasswordPage.java
+++ b/src/com/gitblit/wicket/pages/ChangePasswordPage.java
@@ -50,6 +50,12 @@
 			// no authentication enabled
 			throw new RestartResponseException(getApplication().getHomePage());
 		}
+		
+		if (!GitBlit.self().supportsCredentialChanges()) {
+			error(MessageFormat.format(getString("gb.userServiceDoesNotPermitPasswordChanges"),
+					GitBlit.getString(Keys.realm.userService, "users.conf")), true);
+		}
+		
 		setupPage(getString("gb.changePassword"), GitBlitWebSession.get().getUser().username);
 
 		StatelessForm<Void> form = new StatelessForm<Void>("passwordForm") {
@@ -62,7 +68,7 @@
 				String confirmPassword = ChangePasswordPage.this.confirmPassword.getObject();
 				// ensure passwords match
 				if (!password.equals(confirmPassword)) {
-					error("Passwords do not match!");
+					error(getString("gb.passwordsDoNotMatch"));
 					return;
 				}
 
@@ -72,19 +78,23 @@
 					minLength = 4;
 				}
 				if (password.length() < minLength) {
-					error(MessageFormat.format(
-							"Password is too short. Minimum length is {0} characters.", minLength));
+					error(MessageFormat.format(getString("gb.passwordTooShort"), minLength));
 					return;
 				}
+
+				UserModel user = GitBlitWebSession.get().getUser();
 
 				// convert to MD5 digest, if appropriate
 				String type = GitBlit.getString(Keys.realm.passwordStorage, "md5");
 				if (type.equalsIgnoreCase("md5")) {
 					// store MD5 digest of password
 					password = StringUtils.MD5_TYPE + StringUtils.getMD5(password);
+				} else if (type.equalsIgnoreCase("combined-md5")) {
+					// store MD5 digest of username+password
+					password = StringUtils.COMBINED_MD5_TYPE
+							+ StringUtils.getMD5(user.username.toLowerCase() + password);
 				}
 
-				UserModel user = GitBlitWebSession.get().getUser();
 				user.password = password;
 				try {
 					GitBlit.self().updateUserModel(user.username, user, false);
@@ -97,7 +107,7 @@
 					return;
 				}
 				setRedirect(false);
-				info("Password successfully changed.");
+				info(getString("gb.passwordChanged"));
 				setResponsePage(RepositoriesPage.class);
 			}
 		};
@@ -115,6 +125,8 @@
 
 			@Override
 			public void onSubmit() {
+				setRedirect(false);
+				error(getString("gb.passwordChangeAborted"));
 				setResponsePage(RepositoriesPage.class);
 			}
 		};

--
Gitblit v1.9.1