directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Betts <ch...@pegacat.com>
Subject Re: [jira] Commented: (DIRSERVER-591) Putting some chars like "é" in common name with JXPlorer or my client code creates problems
Date Fri, 17 Mar 2006 01:09:16 GMT
JXplorer should correctly encode non-english characters into UTF-8,  
as per the spec; it's been tested with everything from French to  
Chinese.  "/ufffd' is a java unicode character escape sequence, which  
should never be produced by JX, but might be produced by some java  
code somewhere that is trying to 'make safe' a UTF-8 string - this  
would be consistent with the ' ' -> '%20' behaviour.

   - Chris Betts (JX dev team)

On 13/03/2006, at 7:59 PM, Tony Blanchard (JIRA) wrote:

>     [ http://issues.apache.org/jira/browse/DIRSERVER-591? 
> page=comments#action_12370132 ]
>
> Tony Blanchard commented on DIRSERVER-591:
> ------------------------------------------
>
> Hi Emmanuel,
>
> I did not try with another tool because I have no other tool yet.
> Nevertheless, I found the problem on my client code and tried with  
> JXplorer which has the same pb.
>
> I have seen something to tell you about to reproduce in JXplorer.
> First of all, I have ACLs enabled and forgot to tell about it in  
> environment...
>
> In JXplorer, under groups as admin, create a new entry with classes  
> Top and groupOfUniqueNames.
> Enter the common name like "cn=secrétaire" and valiadate the  
> creation box. In the right table of JXplorer, add as uniqueMember  
> "uid=admin, ou=system".
> Submit changes to LDAP server. It works and you can look at the  
> entry event if you look another one and come back to "secrétaire".
> Now, log out and login as admin. Go to "secrétaire" and there is an  
> exception with these details :
>
>
> javax.naming.NameNotFoundException: [LDAP: error code 32 - failed  
> on search operation:
>     SearchRequest
>         baseDn : 'cn=secr?taire,ou=groups,ou=system'
>         filter : '(objectClass=*) '
>         scope : base object
>         typesOnly : false
> no limit
>         Time Limit : no limit
>         Deref Aliases : deref Finding Base Obj
>         attributes :
> :
> org.apache.directory.shared.ldap.exception.LdapNameNotFoundException:  
> Attempt to search under non-existant entry: cn=secr? 
> taire,ou=groups,ou=system
> 	at  
> org.apache.directory.server.core.exception.ExceptionService.assertHasE 
> ntry(ExceptionService.java:377)
> 	at  
> org.apache.directory.server.core.exception.ExceptionService.search 
> (ExceptionService.java:353)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain 
> $Entry$1.search(InterceptorChain.java:1257)
> 	at  
> org.apache.directory.server.core.authz.AuthorizationService.search 
> (AuthorizationService.java:899)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain 
> $Entry$1.search(InterceptorChain.java:1257)
> 	at org.apache.directory.server.core.referral.ReferralService.search 
> (ReferralService.java:905)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain 
> $Entry$1.search(InterceptorChain.java:1257)
> 	at  
> org.apache.directory.server.core.authn.AuthenticationService.search 
> (AuthenticationService.java:388)
> 	at org.apache.directory.server.core.interceptor.InterceptorChain 
> $Entry$1.search(InterceptorChain.java:1257)
> 	at  
> org.apache.directory.server.core.normalization.NormalizationService.se 
> arch(NormalizationService.java:180)
> 	at  
> org.apache.directory.server.core.interceptor.InterceptorChain.search 
> (InterceptorChain.java:822)
> 	at  
> org.apache.directory.server.core.partition.DirectoryPartitionNexusProx 
> y.search(DirectoryPartitionNexusProxy.java:461)
> 	at  
> org.apache.directory.server.core.partition.DirectoryPartitionNexusProx 
> y.search(DirectoryPartitionNexusProxy.java:406)
> 	at org.apache.directory.server.core.jndi.ServerDirContext.search 
> (ServerDirContext.java:526)
> 	at  
> org.apache.directory.server.ldap.support.SearchHandler.messageReceived 
> (SearchHandler.java:265)
> 	at org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived 
> (DemuxingIoHandler.java:128)
> 	at org.apache.directory.server.ldap.LdapProtocolProvider 
> $LdapProtocolHandler.messageReceived(LdapProtocolProvider.java:431)
> 	at org.apache.mina.common.support.AbstractIoFilterChain 
> $2.messageReceived(AbstractIoFilterChain.java:189)
> 	at  
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageRe 
> ceived(AbstractIoFilterChain.java:494)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.access$1000 
> (AbstractIoFilterChain.java:52)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl 
> $1.messageReceived(AbstractIoFilterChain.java:761)
> 	at org.apache.mina.filter.LoggingFilter.messageReceived 
> (LoggingFilter.java:87)
> 	at  
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageRe 
> ceived(AbstractIoFilterChain.java:494)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.access$1000 
> (AbstractIoFilterChain.java:52)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl 
> $1.messageReceived(AbstractIoFilterChain.java:761)
> 	at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived 
> (ProtocolCodecFilter.java:91)
> 	at  
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageRe 
> ceived(AbstractIoFilterChain.java:494)
> 	at org.apache.mina.common.support.AbstractIoFilterChain.access$1000 
> (AbstractIoFilterChain.java:52)
> 	at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl 
> $1.messageReceived(AbstractIoFilterChain.java:761)
> 	at org.apache.mina.filter.ThreadPoolFilter.processEvent 
> (ThreadPoolFilter.java:665)
> 	at org.apache.mina.filter.ThreadPoolFilter$Worker.processEvents 
> (ThreadPoolFilter.java:421)
> 	at org.apache.mina.filter.ThreadPoolFilter$Worker.run 
> (ThreadPoolFilter.java:376)
> ]; remaining name 'cn=secr taire,ou=groups,ou=system'
>
> If this is not enought to help i will  try to install the tool you  
> tell me about.
> Tony
>
>
>> Putting some chars like "é" in common name with JXPlorer or my  
>> client code creates problems
>> --------------------------------------------------------------------- 
>> ----------------------
>>
>>          Key: DIRSERVER-591
>>          URL: http://issues.apache.org/jira/browse/DIRSERVER-591
>>      Project: Directory ApacheDS
>>         Type: Bug
>>     Versions: 1.0-RC1
>>  Environment: Win XP SP2
>> JRE 1.5.0_04
>> ApacheDS RC1.0
>>     Reporter: Tony Blanchard
>
>>
>> It seems the apacheds database does not like "é" chars.
>> I even think trying to destroy such entries containing such chars  
>> lead to database severe corruption but I have no real and  
>> systematic clue yet.
>> To reproduce, simply try to put a group with a "é" char in the cn  
>> attribute with JXplorer. Now, try to modify it. Exception araise.
>> Now, in my client code, I see SearchResult returned with bad  
>> results in getName() or getNameInNameSpace(). It seems it returns  
>> a string  with " " replaced by "%20" and "é" char replaced with a  
>> value like /ufffd or something like this.
>> Nevertheless, if I retrieve the attributes from the SearchResult I  
>> get the correct "cn" value with a correct "é" char in it
>
> -- 
> This message is automatically generated by JIRA.
> -
> If you think it was sent incorrectly contact one of the  
> administrators:
>    http://issues.apache.org/jira/secure/Administrators.jspa
> -
> For more information on JIRA, see:
>    http://www.atlassian.com/software/jira
>


Mime
View raw message