diff --git a/src/main/java/org/codelibs/fess/app/service/UserService.java b/src/main/java/org/codelibs/fess/app/service/UserService.java index 9539bbe0a..25065566d 100644 --- a/src/main/java/org/codelibs/fess/app/service/UserService.java +++ b/src/main/java/org/codelibs/fess/app/service/UserService.java @@ -81,10 +81,10 @@ public class UserService { } public void changePassword(final String username, final String password) { - ComponentUtil.getLdapManager().changePassword(username, password); + final boolean changed = ComponentUtil.getLdapManager().changePassword(username, password); final FessConfig fessConfig = ComponentUtil.getFessConfig(); - if (fessConfig.isLdapAdminEnabled(username) && fessConfig.isLdapAdminSyncPassword()) { + if (!changed || fessConfig.isLdapAdminSyncPassword()) { userBhv.selectEntity(cb -> cb.query().setName_Equal(username)).ifPresent(entity -> { final String encodedPassword = fessLoginAssist.encryptPassword(password); entity.setPassword(encodedPassword); diff --git a/src/main/java/org/codelibs/fess/ldap/LdapManager.java b/src/main/java/org/codelibs/fess/ldap/LdapManager.java index 72c450f9a..c2e078708 100644 --- a/src/main/java/org/codelibs/fess/ldap/LdapManager.java +++ b/src/main/java/org/codelibs/fess/ldap/LdapManager.java @@ -942,10 +942,10 @@ public class LdapManager { }); } - public void changePassword(final String username, final String password) { + public boolean changePassword(final String username, final String password) { final FessConfig fessConfig = ComponentUtil.getFessConfig(); if (!fessConfig.isLdapAdminEnabled(username)) { - return; + return false; } final Supplier> adminEnv = () -> createAdminEnv(); @@ -959,7 +959,7 @@ public class LdapManager { throw new LdapOperationException("User is not found: " + username); } }); - + return true; } protected void insert(final String entryDN, final Attributes entry, final Supplier> envSupplier) {