public boolean validPassword(RealmModel realm, UserModel user, String password) {
   if (kerberosConfig.isAllowKerberosAuthentication()
       && kerberosConfig.isUseKerberosForPasswordAuthentication()) {
     // Use Kerberos JAAS (Krb5LoginModule)
     KerberosUsernamePasswordAuthenticator authenticator =
         factory.createKerberosUsernamePasswordAuthenticator(kerberosConfig);
     return authenticator.validUser(user.getUsername(), password);
   } else {
     // Use Naming LDAP API
     LDAPObject ldapUser = loadAndValidateUser(realm, user);
     return ldapIdentityStore.validatePassword(ldapUser, password);
   }
 }