| Summary: | [EAP 6.1.1 one-off] LDAP: InitialDirContext.search() method doesn't accecpt url included name parameter | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [JBoss] JBoss Enterprise Application Platform 6 | Reporter: | Derek Horton <dehort> | ||||
| Component: | Naming | Assignee: | Derek Horton <dehort> | ||||
| Status: | CLOSED WONTFIX | QA Contact: | |||||
| Severity: | unspecified | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | 6.1.1 | CC: | jawilson | ||||
| Target Milestone: | --- | ||||||
| Target Release: | One-off release | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2014-09-02 13:18:25 UTC | Type: | Support Patch | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Attachments: |
|
||||||
Created attachment 826238 [details]
patched jars
Fix has been committe to branch: eap-6.1.1-bz-1032227 |
Description of problem: When trying to use InitialDirContext.search(String name, String filter, SearchControls cons) method to search LDAP server, if the first "name" parameter includes url and port number, an javax.naming.InvalidNameException exception will be thrown. This issue only happens in EAP 6, same source code works fine in either EAP 5 or as standalone Java client. Version-Release number of selected component (if applicable): How reproducible: The source code snippet below can be used to reproduce this issue: ============================================================= Hashtable env = new Hashtable(); env.put("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory"); env.put("java.naming.security.authentication", "simple"); env.put("java.naming.ldap.version", "3"); env.put("java.naming.referral", "ignore"); env.put("java.naming.ldap.derefAliases", "never"); env.put("java.naming.provider.url", "ldap://192.168.0.1:389"); env.put("java.naming.factory.url.pkgs", "org.jboss.as.naming.interfaces:org.jboss.ejb.client.naming"); SearchControls ctl = null; String attrArr[] = new String[1]; attrArr[0] = "objectclass"; ctl = new SearchControls(2, 0L, 0, attrArr, false, false); String base = "ldap://192.168.0.1:389/dc=sample,dc=com"; String filter = "(uid=sample)"; NamingEnumeration nenum = null; DirContext ictx = null; try{ ictx = new InitialDirContext(env); nenum = ictx.search(base, filter, ctl); // <====== issue occurs on this line return "SUCCESS"; } catch(NamingException ne1){ ne1.printStackTrace(); } ============================================================= Actual results: Below exception will be thrown: 09:31:57,377 ERROR [stderr] (http-/192.168.0.2:8080-1) javax.naming.InvalidNameException: ldap:: [LDAP: error code 34 - Invalid DN Syntax]; remaining name 'ldap://192.168.0.1:389/dc=sample,dc=com' 09:31:57,377 ERROR [stderr] (http-/192.168.0.2:8080-1) at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source) 09:31:57,378 ERROR [stderr] (http-/192.168.0.2:8080-1) at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source) 09:31:57,378 ERROR [stderr] (http-/192.168.0.2:8080-1) at com.sun.jndi.ldap.LdapCtx.c_lookup(Unknown Source) 09:31:57,378 ERROR [stderr] (http-/192.168.0.2:8080-1) at com.sun.jndi.toolkit.ctx.ComponentContext.c_resolveIntermediate_nns(Unknown Source) 09:31:57,378 ERROR [stderr] (http-/192.168.0.2:8080-1) at com.sun.jndi.toolkit.ctx.AtomicContext.c_resolveIntermediate_nns(Unknown Source)