| * (&(|(objectclass=top)(2.5.4.11=contacts))(!(organizationalUnitName=ttt)))
*/
@Test
public void testDecodeSearchRequestGlobalNoControlsOidAndAlias()
{
Asn1Decoder ldapDecoder = new Asn1Decoder();
ByteBuffer stream = ByteBuffer.allocate( 0xA1 );
stream.put( new byte[]
{
0x30,
( byte ) 0x81,
( byte ) 0x9E, // LDAPMessage ::=SEQUENCE {
0x02,
0x01,
0x01, // messageID MessageID
0x63,
( byte ) 0x81,
( byte ) 0x98, // CHOICE { ...,
// searchRequest
// SearchRequest, ...
// SearchRequest ::= APPLICATION[3] SEQUENCE {
0x04,
0x1F, // baseObject LDAPDN,
'u',
'i',
'd',
'=',
'a',
'k',
'a',
'r',
'a',
's',
'u',
'l',
'u',
',',
'd',
'c',
'=',
'e',
'x',
'a',
'm',
'p',
'l',
'e',
',',
'd',
'c',
'=',
'c',
'o',
'm',
0x0A,
0x01,
0x01, // scope
// ENUMERATED
// {
// baseObject (0),
// singleLevel (1),
// wholeSubtree (2) },
0x0A,
0x01,
0x03, // derefAliases ENUMERATED {
// neverDerefAliases (0),
// derefInSearching (1),
// derefFindingBaseObj (2),
// derefAlways (3) },
// sizeLimit INTEGER (0 .. maxInt), (1000)
0x02,
0x02,
0x03,
( byte ) 0xE8,
// timeLimit INTEGER (0 .. maxInt), (1000)
0x02,
0x02,
0x03,
( byte ) 0xE8,
0x01,
0x01,
( byte ) 0xFF, // typesOnly
// BOOLEAN,
// (TRUE)
// filter Filter,
( byte ) 0xA0,
0x4D, // Filter ::= CHOICE {
// and [0] SET OF Filter,
( byte ) 0xA1,
0x2A, // or [1] SET of Filter,
( byte ) 0xA3,
0x12, // equalityMatch [3]
// Assertion,
// Assertion ::= SEQUENCE {
// attributeDesc AttributeDescription (LDAPString),
0x04,
0x0B,
'o',
'b',
'j',
'e',
'c',
't',
'c',
'l',
'a',
's',
's',
// assertionValue AssertionValue (OCTET STRING) }
0x04,
0x03,
't',
'o',
'p',
( byte ) 0xA3,
0x14, // equalityMatch
// [3]
// Assertion,
// Assertion ::= SEQUENCE {
0x04,
0x08,
'2',
'.',
'5',
'.',
'4',
'.',
'1',
'1', // attributeDesc
// AttributeDescription
// (LDAPString),
// assertionValue AssertionValue (OCTET STRING) }
0x04,
0x08,
'c',
'o',
'n',
't',
'a',
'c',
't',
's',
( byte ) 0xA2,
0x1F, // not
// [2]
// Filter,
( byte ) 0xA3,
0x1D, // equalityMatch [3]
// Assertion,
// Assertion ::= SEQUENCE {
// attributeDesc AttributeDescription (LDAPString),
0x04,
0x16,
'o',
'r',
'g',
'a',
'n',
'i',
'z',
'a',
't',
'i',
'o',
'n',
'a',
'l',
'U',
'n',
'i',
't',
'N',
'a',
'm',
'e',
// assertionValue AssertionValue (OCTET STRING) }
0x04,
0x03,
't',
't',
't',
// attributes AttributeDescriptionList }
0x30,
0x15, // AttributeDescriptionList ::= SEQUENCE OF
// AttributeDescription
0x04,
0x05,
'a',
't',
't',
'r',
'0', // AttributeDescription
// ::= LDAPString
0x04,
0x05,
'a',
't',
't',
'r',
'1', // AttributeDescription
// ::= LDAPString
0x04,
0x05,
'a',
't',
't',
'r',
'2' // AttributeDescription ::=
// LDAPString
} );
stream.flip();
// Allocate a BindRequest Container
LdapMessageContainer<SearchRequestDecorator> ldapMessageContainer =
new LdapMessageContainer<SearchRequestDecorator>( codec );
try
{
ldapDecoder.decode( stream, ldapMessageContainer );
}
catch ( DecoderException de )
{
de.printStackTrace();
fail( de.getMessage() );
|