- JNDI in Matlab, Exception when searching LDAP
- javax.naming.PartialResultException: [LDAP: error code 10 - 0000202B: RefErr: DSID-03100742, data 0, 1 access points
- ref 1: 'de.company.com'
- ]; remaining name 'DC=de,DC=company,DC=com'
- at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
- at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
- at com.sun.jndi.ldap.LdapCtx.searchAux(Unknown Source)
- at com.sun.jndi.ldap.LdapCtx.c_search(Unknown Source)
- at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(Unknown Source)
- at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown Source)
- at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown Source)
- at javax.naming.directory.InitialDirContext.search(Unknown Source)
- Error in ==> getDepartment at 6
- if results.hasMore();
- function [dctx, sc] = ldapLogin(curUser, pwd)
- env = java.util.Hashtable();
- sp = 'com.sun.jndi.ldap.LdapCtxFactory';
- env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, sp);
- ldapUrl = 'ldap://company.com:389';
- env.put(javax.naming.Context.PROVIDER_URL, ldapUrl);
- env.put(javax.naming.Context.SECURITY_AUTHENTICATION, 'simple');
- env.put(javax.naming.Context.SECURITY_PRINCIPAL, ['CN=' curUser ',OU='upper(curUser(1)) ',OU=Useraccounts,OU=Abt,DC=de,DC=company,DC=com']);
- env.put(javax.naming.Context.SECURITY_CREDENTIALS, pwd);
- dctx = javax.naming.directory.InitialLdapContext(env, []);
- sc = javax.naming.directory.SearchControls();
- attributeFilter = {'department'};
- sc.setReturningAttributes(attributeFilter);
- sc.setSearchScope(javax.naming.directory.SearchControls.SUBTREE_SCOPE);
- function result = getDepartment(user,dctx,sc)
- base = 'DC=de,DC=company,DC=com';
- filter = sprintf('(| (cn=%s) (cn=%s))', lower(user), upper(user));
- results = dctx.search(base, filter, sc);
- if results.hasMore();
- result = results.next();
- else
- result = '';
- end
- dctx.close();