]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.enterprise/src/org/argeo/naming/AuthPassword.java
Move RAP specific to subdirectory
[lgpl/argeo-commons.git] / org.argeo.enterprise / src / org / argeo / naming / AuthPassword.java
index f9cfc69c8370d5f53441faff88573630e2acc1ad..6d4c62b3f92629e63176b639f28b9e38b8532a65 100644 (file)
@@ -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) {