X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.enterprise%2Fsrc%2Forg%2Fargeo%2Fnaming%2FAuthPassword.java;h=6d4c62b3f92629e63176b639f28b9e38b8532a65;hb=f9efbe5228615951dd8482a4582aa24e00c10ce5;hp=f9cfc69c8370d5f53441faff88573630e2acc1ad;hpb=2111a76162534100967eb0e7733632e80d9ddc5f;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.enterprise/src/org/argeo/naming/AuthPassword.java b/org.argeo.enterprise/src/org/argeo/naming/AuthPassword.java index f9cfc69c8..6d4c62b3f 100644 --- a/org.argeo.enterprise/src/org/argeo/naming/AuthPassword.java +++ b/org.argeo.enterprise/src/org/argeo/naming/AuthPassword.java @@ -16,11 +16,7 @@ import javax.security.auth.callback.UnsupportedCallbackException; import org.argeo.osgi.useradmin.UserDirectoryException; -/** - * LDAP authPassword field according to RFC 3112. - * - * @see https://www.ietf.org/rfc/rfc3112.txt - */ +/** LDAP authPassword field according to RFC 3112 */ public class AuthPassword implements CallbackHandler { private final String authScheme; private final String authInfo; @@ -103,20 +99,22 @@ public class AuthPassword implements CallbackHandler { public static AuthPassword matchAuthValue(Attributes attributes, char[] value) { try { Attribute authPassword = attributes.get(LdapAttrs.authPassword.name()); - NamingEnumeration values = authPassword.getAll(); - while (values.hasMore()) { - Object val = values.next(); - AuthPassword token = new AuthPassword(val.toString()); - String auth; - if (Arrays.binarySearch(value, '$') >= 0) { - auth = token.authInfo + '$' + token.authValue; - } else { - auth = token.authValue; + if (authPassword != null) { + NamingEnumeration values = authPassword.getAll(); + while (values.hasMore()) { + Object val = values.next(); + AuthPassword token = new AuthPassword(val.toString()); + String auth; + if (Arrays.binarySearch(value, '$') >= 0) { + auth = token.authInfo + '$' + token.authValue; + } else { + auth = token.authValue; + } + if (Arrays.equals(auth.toCharArray(), value)) + return token; + // if (token.matchAuthValue(value)) + // return token; } - if (Arrays.equals(auth.toCharArray(), value)) - return token; - // if (token.matchAuthValue(value)) - // return token; } return null; } catch (NamingException e) {