/** * @see org.projectforge.business.login.LoginHandler#checkLogin(java.lang.String, java.lang.String, boolean) */ @Override public LoginResult checkLogin(final String username, final String password) { final LoginResult loginResult = loginDefaultHandler.checkLogin(username, password); if (loginResult.getLoginResultStatus() != LoginResultStatus.SUCCESS) { return loginResult; } try { // User is now logged-in successfully. final LdapUser authLdapUser = ldapUserDao.authenticate(username, password, userBase); if (authLdapUser == null) { final PFUserDO user = loginResult.getUser(); final LdapUser ldapUser = pfUserDOConverter.convert(user); ldapUser.setOrganizationalUnit(userBase); log.info("User's credentials in LDAP not up-to-date: " + username + ". Updating LDAP entry..."); ldapUserDao.createOrUpdate(userBase, ldapUser); ldapUserDao.changePassword(ldapUser, null, password); // update the userPassword but not the (WLAN)sambaNTPassword } } catch (final Exception ex) { log.error("An exception occured while checking login against LDAP system (ignoring this error): " + ex.getMessage(), ex); } return loginResult; }
/** * @see org.projectforge.business.login.LoginHandler#passwordChanged(org.projectforge.framework.persistence.user.entities.PFUserDO, * java.lang.String) */ @Override public void passwordChanged(final PFUserDO user, final String newPassword) { final LdapUser ldapUser = ldapUserDao.findById(user.getId()); if (user.isDeleted() == true || user.isLocalUser() == true) { // Don't change passwords of such users. return; } if (ldapUser != null) { ldapUserDao.changePassword(ldapUser, null, newPassword); final LdapUser authenticatedUser = ldapUserDao.authenticate(user.getUsername(), newPassword); log.info("Password changed successfully for : " + authenticatedUser); } else { log.error("Can't change LDAP password for user '" + user.getUsername() + "'! Not such user found in LDAP!."); } }
final LdapUser ldapUser = ldapUserDao.authenticate(username, password, organizationalUnits); if (ldapUser == null) { log.info("User login failed: " + username);