001 /*
002 * CDDL HEADER START
003 *
004 * The contents of this file are subject to the terms of the
005 * Common Development and Distribution License, Version 1.0 only
006 * (the "License"). You may not use this file except in compliance
007 * with the License.
008 *
009 * You can obtain a copy of the license at
010 * trunk/opends/resource/legal-notices/OpenDS.LICENSE
011 * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
012 * See the License for the specific language governing permissions
013 * and limitations under the License.
014 *
015 * When distributing Covered Code, include this CDDL HEADER in each
016 * file and include the License file at
017 * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
018 * add the following below this CDDL HEADER, with the fields enclosed
019 * by brackets "[]" replaced with your own identifying information:
020 * Portions Copyright [yyyy] [name of copyright owner]
021 *
022 * CDDL HEADER END
023 *
024 *
025 * Copyright 2006-2008 Sun Microsystems, Inc.
026 */
027 package org.opends.server.protocols.ldap;
028
029
030
031 /**
032 * This class defines a number of constants used in the LDAP protocol.
033 */
034 public class LDAPConstants
035 {
036 /**
037 * The protocol op type for bind requests.
038 */
039 public static final byte OP_TYPE_BIND_REQUEST = 0x60;
040
041
042
043 /**
044 * The protocol op type for bind responses.
045 */
046 public static final byte OP_TYPE_BIND_RESPONSE = 0x61;
047
048
049
050 /**
051 * The protocol op type for unbind requests.
052 */
053 public static final byte OP_TYPE_UNBIND_REQUEST = 0x42;
054
055
056
057 /**
058 * The protocol op type for search requests.
059 */
060 public static final byte OP_TYPE_SEARCH_REQUEST = 0x63;
061
062
063
064 /**
065 * The protocol op type for search result entries.
066 */
067 public static final byte OP_TYPE_SEARCH_RESULT_ENTRY = 0x64;
068
069
070
071 /**
072 * The protocol op type for search result references.
073 */
074 public static final byte OP_TYPE_SEARCH_RESULT_REFERENCE = 0x73;
075
076
077
078 /**
079 * The protocol op type for search result done elements.
080 */
081 public static final byte OP_TYPE_SEARCH_RESULT_DONE = 0x65;
082
083
084
085 /**
086 * The protocol op type for modify requests.
087 */
088 public static final byte OP_TYPE_MODIFY_REQUEST = 0x66;
089
090
091
092 /**
093 * The protocol op type for modify responses.
094 */
095 public static final byte OP_TYPE_MODIFY_RESPONSE = 0x67;
096
097
098
099 /**
100 * The protocol op type for add requests.
101 */
102 public static final byte OP_TYPE_ADD_REQUEST = 0x68;
103
104
105
106 /**
107 * The protocol op type for add responses.
108 */
109 public static final byte OP_TYPE_ADD_RESPONSE = 0x69;
110
111
112
113 /**
114 * The protocol op type for delete requests.
115 */
116 public static final byte OP_TYPE_DELETE_REQUEST = 0x4A;
117
118
119
120 /**
121 * The protocol op type for delete responses.
122 */
123 public static final byte OP_TYPE_DELETE_RESPONSE = 0x6B;
124
125
126
127 /**
128 * The protocol op type for modify DN requests.
129 */
130 public static final byte OP_TYPE_MODIFY_DN_REQUEST = 0x6C;
131
132
133
134 /**
135 * The protocol op type for modify DN responses.
136 */
137 public static final byte OP_TYPE_MODIFY_DN_RESPONSE = 0x6D;
138
139
140
141 /**
142 * The protocol op type for compare requests.
143 */
144 public static final byte OP_TYPE_COMPARE_REQUEST = 0x6E;
145
146
147
148 /**
149 * The protocol op type for compare responses.
150 */
151 public static final byte OP_TYPE_COMPARE_RESPONSE = 0x6F;
152
153
154
155 /**
156 * The protocol op type for abandon requests.
157 */
158 public static final byte OP_TYPE_ABANDON_REQUEST = 0x50;
159
160
161
162 /**
163 * The protocol op type for extended requests.
164 */
165 public static final byte OP_TYPE_EXTENDED_REQUEST = 0x77;
166
167
168
169 /**
170 * The protocol op type for extended responses.
171 */
172 public static final byte OP_TYPE_EXTENDED_RESPONSE = 0x78;
173
174
175
176 /**
177 * The protocol op type for intermediate responses.
178 */
179 public static final byte OP_TYPE_INTERMEDIATE_RESPONSE = 0x79;
180
181
182
183 /**
184 * The BER type to use for encoding the sequence of controls in an LDAP
185 * message.
186 */
187 public static final byte TYPE_CONTROL_SEQUENCE = (byte) 0xA0;
188
189
190
191 /**
192 * The BER type to use for encoding the sequence of referral URLs in an
193 * LDAPResult element.
194 */
195 public static final byte TYPE_REFERRAL_SEQUENCE = (byte) 0xA3;
196
197
198
199 /**
200 * The BER type to use for the AuthenticationChoice element in a bind request
201 * when simple authentication is to be used.
202 */
203 public static final byte TYPE_AUTHENTICATION_SIMPLE = (byte) 0x80;
204
205
206
207 /**
208 * The BER type to use for the AuthenticationChoice element in a bind request
209 * when SASL authentication is to be used.
210 */
211 public static final byte TYPE_AUTHENTICATION_SASL = (byte) 0xA3;
212
213
214
215 /**
216 * The BER type to use for the server SASL credentials in a bind response.
217 */
218 public static final byte TYPE_SERVER_SASL_CREDENTIALS = (byte) 0x87;
219
220
221
222 /**
223 * The BER type to use for AND filter components.
224 */
225 public static final byte TYPE_FILTER_AND = (byte) 0xA0;
226
227
228
229 /**
230 * The BER type to use for OR filter components.
231 */
232 public static final byte TYPE_FILTER_OR = (byte) 0xA1;
233
234
235
236 /**
237 * The BER type to use for NOT filter components.
238 */
239 public static final byte TYPE_FILTER_NOT = (byte) 0xA2;
240
241
242
243 /**
244 * The BER type to use for equality filter components.
245 */
246 public static final byte TYPE_FILTER_EQUALITY = (byte) 0xA3;
247
248
249
250 /**
251 * The BER type to use for substring filter components.
252 */
253 public static final byte TYPE_FILTER_SUBSTRING = (byte) 0xA4;
254
255
256
257 /**
258 * The BER type to use for greater than or equal to filter components.
259 */
260 public static final byte TYPE_FILTER_GREATER_OR_EQUAL = (byte) 0xA5;
261
262
263
264 /**
265 * The BER type to use for less than or equal to filter components.
266 */
267 public static final byte TYPE_FILTER_LESS_OR_EQUAL = (byte) 0xA6;
268
269
270
271 /**
272 * The BER type to use for presence filter components.
273 */
274 public static final byte TYPE_FILTER_PRESENCE = (byte) 0x87;
275
276
277
278 /**
279 * The BER type to use for approximate filter components.
280 */
281 public static final byte TYPE_FILTER_APPROXIMATE = (byte) 0xA8;
282
283
284
285 /**
286 * The BER type to use for extensible matching filter components.
287 */
288 public static final byte TYPE_FILTER_EXTENSIBLE_MATCH = (byte) 0xA9;
289
290
291
292 /**
293 * The BER type to use for the subInitial component of a substring filter.
294 */
295 public static final byte TYPE_SUBINITIAL = (byte) 0x80;
296
297
298
299 /**
300 * The BER type to use for the subAny component(s) of a substring filter.
301 */
302 public static final byte TYPE_SUBANY = (byte) 0x81;
303
304
305
306 /**
307 * The BER type to use for the subFinal components of a substring filter.
308 */
309 public static final byte TYPE_SUBFINAL = (byte) 0x82;
310
311
312
313 /**
314 * The BER type to use for the matching rule OID in a matching rule assertion.
315 */
316 public static final byte TYPE_MATCHING_RULE_ID = (byte) 0x81;
317
318
319
320 /**
321 * The BER type to use for the attribute type in a matching rule assertion.
322 */
323 public static final byte TYPE_MATCHING_RULE_TYPE = (byte) 0x82;
324
325
326
327 /**
328 * The BER type to use for the assertion value in a matching rule assertion.
329 */
330 public static final byte TYPE_MATCHING_RULE_VALUE = (byte) 0x83;
331
332
333
334 /**
335 * The BER type to use for the DN attributes flag in a matching rule
336 * assertion.
337 */
338 public static final byte TYPE_MATCHING_RULE_DN_ATTRIBUTES = (byte) 0x84;
339
340
341
342 /**
343 * The BER type to use for the newSuperior component of a modify DN request.
344 */
345 public static final byte TYPE_MODIFY_DN_NEW_SUPERIOR = (byte) 0x80;
346
347
348
349 /**
350 * The BER type to use for the OID of an extended request.
351 */
352 public static final byte TYPE_EXTENDED_REQUEST_OID = (byte) 0x80;
353
354
355
356 /**
357 * The BER type to use for the value of an extended request.
358 */
359 public static final byte TYPE_EXTENDED_REQUEST_VALUE = (byte) 0x81;
360
361
362
363 /**
364 * The BER type to use for the OID of an extended response.
365 */
366 public static final byte TYPE_EXTENDED_RESPONSE_OID = (byte) 0x8A;
367
368
369
370 /**
371 * The BER type to use for the value of an extended response.
372 */
373 public static final byte TYPE_EXTENDED_RESPONSE_VALUE = (byte) 0x8B;
374
375
376
377 /**
378 * The BER type to use for the OID of an intermediate response message.
379 */
380 public static final byte TYPE_INTERMEDIATE_RESPONSE_OID = (byte) 0x80;
381
382
383
384 /**
385 * The BER type to use for the value of an intermediate response message.
386 */
387 public static final byte TYPE_INTERMEDIATE_RESPONSE_VALUE = (byte) 0x81;
388
389
390
391 /**
392 * The enumerated type for modify operations that add one or more values for
393 * an attribute.
394 */
395 public static final int MOD_TYPE_ADD = 0;
396
397
398
399 /**
400 * The enumerated type for modify operations that remove one or more values
401 * from an attribute.
402 */
403 public static final int MOD_TYPE_DELETE = 1;
404
405
406
407 /**
408 * The enumerated type for modify operations that replace the set of values
409 * for an attribute.
410 */
411 public static final int MOD_TYPE_REPLACE = 2;
412
413
414
415 /**
416 * The enumerated type for modify operations that increment the value for an
417 * attribute.
418 */
419 public static final int MOD_TYPE_INCREMENT = 3;
420
421
422
423 /**
424 * The search scope value that will be used for base-level searches.
425 */
426 public static final int SCOPE_BASE_OBJECT = 0;
427
428
429
430 /**
431 * The search scope value that will be used for single-level searches.
432 */
433 public static final int SCOPE_SINGLE_LEVEL = 1;
434
435
436
437 /**
438 * The search scope value that will be used for whole subtree searches.
439 */
440 public static final int SCOPE_WHOLE_SUBTREE = 2;
441
442
443
444 /**
445 * The search scope value that will be used for subordinate subtree searches.
446 */
447 public static final int SCOPE_SUBORDINATE_SUBTREE = 3;
448
449
450
451 /**
452 * The alias dereferencing policy value that will be used for cases in which
453 * aliases are never to be dereferenced.
454 */
455 public static final int DEREF_NEVER = 0;
456
457
458
459 /**
460 * The alias dereferencing policy value that will be used for cases in which
461 * any aliases encountered while finding matching entries should be
462 * dereferenced.
463 */
464 public static final int DEREF_IN_SEARCHING = 1;
465
466
467
468 /**
469 * The alias dereferencing policy value that will be used for cases in which
470 * the search base should be dereferenced if it is an alias.
471 */
472 public static final int DEREF_FINDING_BASE = 2;
473
474
475
476 /**
477 * The alias dereferencing policy value that will be used for cases in which
478 * all aliases encountered should be dereferenced.
479 */
480 public static final int DEREF_ALWAYS = 3;
481
482
483
484 /**
485 * The OID for the Kerberos V GSSAPI mechanism.
486 */
487 public static final String OID_GSSAPI_KERBEROS_V = "1.2.840.113554.1.2.2";
488
489
490
491 /**
492 * The OID for the LDAP notice of disconnection extended operation.
493 */
494 public static final String OID_NOTICE_OF_DISCONNECTION =
495 "1.3.6.1.4.1.1466.20036";
496
497
498
499 /**
500 * The ASN.1 element decoding state that indicates that the next byte read
501 * should be the BER type for a new element.
502 */
503 public static final int ELEMENT_READ_STATE_NEED_TYPE = 0;
504
505
506
507 /**
508 * The ASN.1 element decoding state that indicates that the next byte read
509 * should be the first byte for the element length.
510 */
511 public static final int ELEMENT_READ_STATE_NEED_FIRST_LENGTH_BYTE = 1;
512
513
514
515 /**
516 * The ASN.1 element decoding state that indicates that the next byte read
517 * should be additional bytes of a multi-byte length.
518 */
519 public static final int ELEMENT_READ_STATE_NEED_ADDITIONAL_LENGTH_BYTES = 2;
520
521
522
523 /**
524 * The ASN.1 element decoding state that indicates that the next byte read
525 * should be applied to the value of the element.
526 */
527 public static final int ELEMENT_READ_STATE_NEED_VALUE_BYTES = 3;
528 }
529