Issue Details (XML | Word | Printable)

Key: DIRSERVER-602
Type: Bug Bug
Status: Closed Closed
Resolution: Won't Fix
Priority: Major Major
Assignee: Stefan Zoerner
Reporter: Tony Blanchard
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Directory ApacheDS

Spaces in PROVIDER_URL environment value seems to lead to problems

Created: 22/Mar/06 12:20 AM   Updated: 15/Feb/09 01:34 PM
Return to search
Component/s: None
Affects Version/s: 1.0-RC2
Fix Version/s: None

Time Tracking:
Not Specified

Environment:
WIN XP
ACI Enabled
sun LdapCtxFactory

Resolution Date: 22/Mar/06 06:50 PM


 Description  « Hide
I found that giving a PROVIDER_URL value like this : "ldap://localhost:389/ou=Mon entreprise,dc=fr" to the InitialDirContext constructor returned a DirContext with a currentDN attribute to :"ou=Mon".

Ex :
lEnv.put(...);
lEnv.put(Context.PROVIDER_URL, "ldap://localhost:389/ou=Mon entreprise,dc=fr");
lEnv.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");

try
{
      lContext = new InitialDirontext(lEnv);
}
  [ .... ]

As a result, I can not use correctly this context.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Stefan Zoerner added a comment - 22/Mar/06 01:02 AM
I have some questions.

How do you determine the "currentDN" from the DirContext?
Which JDK-Version do you use?
What happens, if you try this LDAP URL? (blank is encoded)
lEnv.put(Context.PROVIDER_URL, "ldap://localhost:389/ou=Mon%20entreprise,dc=fr");

Thanks in advance, Stefan

Tony Blanchard added a comment - 22/Mar/06 01:17 AM
Hi Stefan

the "CurrentDN" is shown in my netbeans 4.1 debugger.
My JDK version is 1.5.0_04
I have already tried to replace the blank char with "%20" but it made no difference.

If I search under the context I created with this problem, the exception returned by ApacheDs gives also an incomplete name as baseDN for the search operation.

Hope this help.
If you need another information, I will be there

Emmanuel Lecharny added a comment - 22/Mar/06 07:19 AM
As stated by RFC 2255 :

"Note that any URL-illegal characters (e.g., spaces), URL special
   characters (as defined in section 2.2 of RFC 1738) and the reserved
   character '?' (ASCII 63) occurring inside a dn, filter, or other
   element of an LDAP URL MUST be escaped using the % method described
   in RFC 1738 [5]"

So lEnv.put(Context.PROVIDER_URL, "ldap://localhost:389/ou=Mon entreprise,dc=fr"); is not valid.

However, the problem remains if it does not work with lEnv.put(Context.PROVIDER_URL, "ldap://localhost:389/ou=Mon%20entreprise,dc=fr"); , as Stefan said.

This has to be evaluated and fixed.

Do you have a full testcase, Tony? It can help a lot :)

Thanks for the report !

Tony Blanchard added a comment - 22/Mar/06 06:02 PM
While trying to make a test case as asked by Emmanuel, I noticed my " " replacement was not compiled with my other dependencies.

I am really sorry for time loss.
In fact, replacing " " by "%20", as I made in code but as I did not compile correctly, works just fine.

Sorry again for the mistake...
This JIRA entry should be closed.

Stefan Zoerner added a comment - 22/Mar/06 06:50 PM
In order to reflect the comment from Tony, that encoding of the blank in the URL makes his situation work, I resolve this issue ("Won't fix").

Emmanuel Lecharny added a comment - 15/Feb/09 01:34 PM
closed