Norval Hope wrote:
Hi Emmanuel,
<snip/>
At any rate the problem(s) I had were all caused to trying to submit a
fairly simple search:
"(&(objectClass=nisNetgroup)(|(nisNetGroupTriple=a*a)(nisNetGroupTriple=\28*,acc1,*\29)))".
I'm not able to verify which of these problems apply to the current
trunk but will list them for the moment anyway:
1. The ldap codec had a serious bug parsing seach filters, so that
the search above was mangled into
"(&(objectClass=nisNetgroup)(|(nisNetGroupTriple=a*a))(nisNetGroupTriple=\28*,acc1,*\29))"
I have added a test with a PDU for this filter, and it decodes
correctly. I have also added a test in the filter parser to see if it
parse correctly this filter, and it does. I would like to see the sent
PDU, I suspect there might be a JNDI problem at this point.
Here is the PDU I have created :
/**
* Test the decoding of a SearchRequest with a complex filter :
* (&(objectClass=person)(|(cn=Tori*)(sn=Jagger)))
*/
@Test
public void testDecodeSearchRequestComplexFilter()
{
Asn1Decoder ldapDecoder = new LdapDecoder();
ByteBuffer stream = ByteBuffer.allocate( 0x77 );
stream.put( new byte[]
{
0x30, 0x75, // LdapMessage
0x02, 0x01, 0x06, // message Id = 6
0x63, 0x53, // SearchRequest
0x04, 0x09, // BasDN 'ou=system'
0x6F, 0x75, 0x3D, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6D,
0x0A, 0x01, 0x02, // scope = SUBTREE
0x0A, 0x01, 0x03, // derefAlias = 3
0x02, 0x01, 0x00, // sizeLimit = none
0x02, 0x01, 0x00, // timeLimit = none
0x01, 0x01, 0x00, // types only = false
(byte)0xA0, 0x35, // AND
(byte)0xA3, 0x15, // equals
0x04, 0x0B, // 'objectclass'
0x6F, 0x62, 0x6A, 0x65, 0x63, 0x74, 0x43, 0x6C,
0x61, 0x73, 0x73,
0x04, 0x06, // 'person'
0x70, 0x65, 0x72, 0x73, 0x6F, 0x6E,
(byte)0xA1, 0x1C, // OR
(byte)0xA4, 0x0C, // substrings : 'cn=Tori*'
0x04, 0x02, // 'cn'
0x63, 0x6E,
0x30, 0x06, // initial = 'Tori'
(byte)0x80, 0x04,
0x54, 0x6F, 0x72, 0x69,
(byte)0xA3, 0x0C, // equals
0x04, 0x02, // 'sn'
0x73, 0x6E,
0x04, 0x06, // 'Jagger'
0x4A, 0x61, 0x67, 0x67, 0x65, 0x72,
0x30, 0x00, // Control
(byte)0xA0, 0x1B,
0x30, 0x19,
0x04, 0x17,
'2', '.', '1', '6', '.', '8', '4', '0', '.',
'1', '.', '1', '1', '3', '7', '3', '0', '.',
'3', '.', '4', '.', '2'
} );
--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org