diff --git a/src/main/java/de/thm/arsnova/services/UserService.java b/src/main/java/de/thm/arsnova/services/UserService.java index 26ca91227ec6e5f7a48f5311650246b937b03665..37d054ca57bf40a15d4780c86c6418d7bd870d29 100644 --- a/src/main/java/de/thm/arsnova/services/UserService.java +++ b/src/main/java/de/thm/arsnova/services/UserService.java @@ -343,10 +343,14 @@ public class UserService implements IUserService { } if (null == mailPattern || !mailPattern.matcher(lcUsername).matches()) { + LOGGER.info("User registration failed. {} does not match pattern.", lcUsername); + return null; } if (null != databaseDao.getUser(lcUsername)) { + LOGGER.info("User registration failed. {} already exists.", lcUsername); + return null; } @@ -359,6 +363,8 @@ public class UserService implements IUserService { DbUser result = databaseDao.createOrUpdateUser(dbUser); if (null != result) { sendActivationEmail(result); + } else { + LOGGER.error("User registration failed. {} could not be created.", lcUsername); } return result; @@ -447,15 +453,22 @@ public class UserService implements IUserService { public void initiatePasswordReset(String username) { DbUser dbUser = getDbUser(username); if (null == dbUser) { + LOGGER.info("Password reset failed. User {} does not exist.", username); + throw new NotFoundException(); } if (System.currentTimeMillis() < dbUser.getPasswordResetTime() + REPEATED_PASSWORD_RESET_DELAY_MS) { + LOGGER.info("Password reset failed. The reset delay for User {} is still active.", username); + throw new BadRequestException(); } dbUser.setPasswordResetKey(RandomStringUtils.randomAlphanumeric(32)); dbUser.setPasswordResetTime(System.currentTimeMillis()); - databaseDao.createOrUpdateUser(dbUser); + + if (null == databaseDao.createOrUpdateUser(dbUser)) { + LOGGER.error("Password reset failed. {} could not be updated.", username); + } String resetPasswordUrl; try { @@ -479,9 +492,13 @@ public class UserService implements IUserService { @Override public boolean resetPassword(DbUser dbUser, String key, String password) { if (null == key || "".equals(key) || !key.equals(dbUser.getPasswordResetKey())) { + LOGGER.info("Password reset failed. Invalid key provided for User {}.", dbUser.getUsername()); + return false; } if (System.currentTimeMillis() > dbUser.getPasswordResetTime() + PASSWORD_RESET_KEY_DURABILITY_MS) { + LOGGER.info("Password reset failed. Key provided for User {} is no longer valid.", dbUser.getUsername()); + dbUser.setPasswordResetKey(null); dbUser.setPasswordResetTime(0); updateDbUser(dbUser); @@ -491,7 +508,9 @@ public class UserService implements IUserService { dbUser.setPassword(encodePassword(password)); dbUser.setPasswordResetKey(null); - updateDbUser(dbUser); + if (null == updateDbUser(dbUser)) { + LOGGER.error("Password reset failed. {} could not be updated.", dbUser.getUsername()); + } return true; }