Decoder does no give sufficient information about errors so the LDAP server can 
respond with correct result code.
-----------------------------------------------------------------------------------------------------------------

         Key: DIREVE-339
         URL: http://issues.apache.org/jira/browse/DIREVE-339
     Project: Directory Server
        Type: Bug
    Reporter: Alex Karasulu
 Assigned to: Alex Karasulu 


Right now a communication exception is thrown by the server when a malformed DN 
is given in a PDU.  I tested this with bind for example using a bad BindDN.  
When the ASN1 codec fails the server cannot really tell the difference between 
a bad protocol PDU which causes a protocolError (2) resulting in a JNDI 
CommunicationException from a bad DN which should return a resultCode of 
namingViolation (64) which in JNDI comes back to the client as an 
InvalidNameException. For more info on resultCodes mapping to JNDI exceptions 
see: 

http://java.sun.com/products/jndi/jndi-ldap-gl.html#EXCEPT

Basically the ASN1 decoder has to throw exceptions with hints regarding the 
failure to allow the server to respond appropriately to the client.  This can 
be done by embedding additional info such as a result code in an subclass of 
DecoderException.  Then the LdapProtocolProvider can access this info. 

This problem is a direct result of trying to parse a DN for correctness when 
this is not the responsibility of the ASN1 codec.  The LDAP BER codec should be 
giving stuff back to the server as is and letting the server determine whether 
or not the dn or other (non-asn1 constrained) constructs are invalid.




-- 
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

Reply via email to