001    /*
002     *  Licensed to the Apache Software Foundation (ASF) under one
003     *  or more contributor license agreements.  See the NOTICE file
004     *  distributed with this work for additional information
005     *  regarding copyright ownership.  The ASF licenses this file
006     *  to you under the Apache License, Version 2.0 (the
007     *  "License"); you may not use this file except in compliance
008     *  with the License.  You may obtain a copy of the License at
009     *  
010     *    http://www.apache.org/licenses/LICENSE-2.0
011     *  
012     *  Unless required by applicable law or agreed to in writing,
013     *  software distributed under the License is distributed on an
014     *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015     *  KIND, either express or implied.  See the License for the
016     *  specific language governing permissions and limitations
017     *  under the License. 
018     *  
019     */
020    package org.apache.directory.shared.ldap.constants;
021    
022    
023    /**
024     * A utility class where we declare all the schema objects being used by any
025     * ldap server.
026     *
027     * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
028     * @version $Rev:$
029     */
030    public interface SchemaConstants
031    {
032        // Special attributes 1.1 , * and + for search operations
033        String NO_ATTRIBUTE = "1.1";
034        String[] NO_ATTRIBUTE_ARRAY = new String[]{ NO_ATTRIBUTE };
035        
036        String ALL_USER_ATTRIBUTES = "*";
037        String[] ALL_USER_ATTRIBUTES_ARRAY = new String[]{ ALL_USER_ATTRIBUTES };
038        
039        String ALL_OPERATIONAL_ATTRIBUTES = "+";
040        String[] ALL_OPERATIONAL_ATTRIBUTES_ARRAY = new String[]{ ALL_OPERATIONAL_ATTRIBUTES };
041        
042        // ---- ObjectClasses -----------------------------------------------------
043        // Krb5Principal
044        String KRB5_PRINCIPAL_OC = "krb5Principal";
045        String KRB5_PRINCIPAL_OC_OID = "1.3.6.1.4.1.5322.10.2.1";
046        
047        // Top
048        String TOP_OC = "top";
049        String TOP_OC_OID = "2.5.6.0";
050        
051        // Alias
052        String ALIAS_OC = "alias";
053        String ALIAS_OC_OID = "2.5.6.1";
054    
055        // Country
056        String COUNTRY_OC = "country";
057        String COUNTRY_OC_OID = "2.5.6.2";
058    
059        // Domain
060        String DOMAIN_OC = "domain";
061        String DOMAIN_OC_OID = "0.9.2342.19200300.100.4.13";
062    
063        // DcObject
064        String DC_OBJECT_OC = "dcObject";
065        String DC_OBJECT_OC_OID = "1.3.6.1.4.1.1466.344";
066    
067        // Locality
068        String LOCALITY_OC = "locality";
069        String LOCALITY_OC_OID = "2.5.6.3";
070    
071        // Organization
072        String ORGANIZATION_OC = "organization";
073        String ORGANIZATION_OC_OID = "2.5.6.4";
074    
075        // OrganizationalUnit
076        String ORGANIZATIONAL_UNIT_OC = "organizationalUnit";
077        String ORGANIZATIONAL_UNIT_OC_OID = "2.5.6.5";
078    
079        // Person
080        String PERSON_OC = "person";
081        String PERSON_OC_OID = "2.5.6.6";
082    
083        // PosixAccount
084        String POSIX_ACCOUNT_OC = "posicAccount";
085        String POSIX_ACCOUNT_OC_OID = "1.3.6.1.1.1.2.0";
086    
087        // PosixGroup
088        String POSIX_GROUP_OC = "posixGroup";
089        String POSIX_GROUP_OC_OID = "1.3.6.1.1.1.2.2";
090        
091        // OrganizationalPerson
092        String ORGANIZATIONAL_PERSON_OC = "organizationalPerson";
093        String ORGANIZATIONAL_PERSON_OC_OID = "2.5.6.7";
094    
095        // OrganizationalRole
096        String ORGANIZATIONAL_ROLE_OC = "organizationalRole";
097        String ORGANIZATIONAL_ROLE_OC_OID = "2.5.6.8";
098    
099        // GroupOfNames
100        String GROUP_OF_NAMES_OC = "groupOfNames";
101        String GROUP_OF_NAMES_OC_OID = "2.5.6.9";
102        
103        // ResidentialPerson
104        String RESIDENTIAL_PERSON_OC = "residentialPerson";
105        String RESIDENTIAL_PERSON_OC_OID = "2.5.6.10";
106        
107        // GroupOfUniqueNames
108        String GROUP_OF_UNIQUE_NAMES_OC = "groupOfUniqueNames";
109        String GROUP_OF_UNIQUE_NAMES_OC_OID = "2.5.6.17";
110        
111        // Subentry
112        String SUBENTRY_OC = "subentry";
113        String SUBENTRY_OC_OID = "2.5.17.0";
114        
115        // AccessControlSubentry
116        String ACCESS_CONTROL_SUBENTRY_OC = "accessControlSubentry";
117        String ACCESS_CONTROL_SUBENTRY_OC_OID = "2.5.17.1";
118        
119        // CollectiveAttributeSubentry
120        String COLLECTIVE_ATTRIBUTE_SUBENTRY_OC = "collectiveAttributeSubentry";
121        String COLLECTIVE_ATTRIBUTE_SUBENTRY_OC_OID = "2.5.17.2";
122    
123        // Subschema
124        String SUBSCHEMA_OC = "subschema";
125        String SUBSCHEMA_OC_OID = "2.5.20.1";
126        
127        // InetOrgPerson
128        String INET_ORG_PERSON_OC = "inetOrgPerson";
129        String INET_ORG_PERSON_OC_OID = "2.16.840.1.113730.3.2.2";
130        
131        // Referral
132        String REFERRAL_OC = "referral";
133        String REFERRAL_OC_OID = "2.16.840.1.113730.3.2.6";
134    
135        // ExtensibleObject
136        String EXTENSIBLE_OBJECT_OC = "extensibleObject";
137        String EXTENSIBLE_OBJECT_OC_OID = "1.3.6.1.4.1.1466.101.120.111";
138    
139        // Apache Meta Schema
140        String META_TOP_OC = "metaTop";
141        String META_TOP_OC_OID = "1.3.6.1.4.1.18060.0.4.0.3.1";
142        String META_OBJECT_CLASS_OC = "metaObjectClass";
143        String META_OBJECT_CLASS_OC_OID = "1.3.6.1.4.1.18060.0.4.0.3.2";
144        String META_ATTRIBUTE_TYPE_OC = "metaAttributeType";
145        String META_ATTRIBUTE_TYPE_OC_OID = "1.3.6.1.4.1.18060.0.4.0.3.3";
146        String META_SYNTAX_OC = "metaSyntax";
147        String META_SYNTAX_OC_OID = "1.3.6.1.4.1.18060.0.4.0.3.4";
148        String META_MATCHING_RULE_OC = "metaMatchingRule";
149        String META_MATCHING_RULE_OC_OID = "1.3.6.1.4.1.18060.0.4.0.3.5";
150        String META_DIT_STRUCTURE_RULE_OC = "metaDITStructureRule";
151        String META_DIT_STRUCTURE_RULE_OC_OID = "1.3.6.1.4.1.18060.0.4.0.3.6";
152        String META_NAME_FORM_OC = "metaNameForm";
153        String META_NAME_FORM_OC_OID = "1.3.6.1.4.1.18060.0.4.0.3.7";
154        String META_MATCHING_RULE_USE_OC = "metaMatchingRuleUse";
155        String META_MATCHING_RULE_USE_OC_OID = "1.3.6.1.4.1.18060.0.4.0.3.8";
156        String META_DIT_CONTENT_RULE_OC = "metaDITContentRule";
157        String META_DIT_CONTENT_RULE_OC_OID = "1.3.6.1.4.1.18060.0.4.0.3.9";
158        String META_SYNTAX_CHECKER_OC = "metaSyntaxChecker";
159        String META_SYNTAX_CHECKER_OC_OID = "1.3.6.1.4.1.18060.0.4.0.3.10";
160        String META_SCHEMA_OC = "metaSchema";
161        String META_SCHEMA_OC_OID = "1.3.6.1.4.1.18060.0.4.0.3.11";
162        String META_NORMALIZER_OC = "metaNormalizer";
163        String META_NORMALIZER_OC_OID = "1.3.6.1.4.1.18060.0.4.0.3.12";
164        String META_COMPARATOR_OC = "metaComparator";
165        String META_COMPARATOR_OC_OID = "1.3.6.1.4.1.18060.0.4.0.3.13";
166        
167        
168        // ---- AttributeTypes ----------------------------------------------------
169        // ObjectClass
170        String OBJECT_CLASS_AT = "objectClass";
171        String OBJECT_CLASS_AT_OID = "2.5.4.0";
172        
173        // AliasedObjectName
174        String ALIASED_OBJECT_NAME_AT = "aliasedObjectName";
175        String ALIASED_OBJECT_NAME_AT_OID = "2.5.4.1";
176    
177        // Name
178        String NAME_AT = "name";
179        String NAME_AT_OID = "2.5.4.41";
180    
181        // Cn
182        String CN_AT = "cn";
183        String COMMON_NAME_AT = "commonName";
184        String CN_AT_OID = "2.5.4.3";
185        
186        // Sn
187        String SN_AT = "sn";
188        String SURNAME_AT = "surname";
189        String SN_AT_OID = "2.5.4.4";
190    
191        // St
192        String ST_AT = "st";
193        String STATEORPROVINCE_NAME_AT = "stateOrProvinceName";
194        String ST_AT_OID = "2.5.4.8";
195    
196        // Street
197        String STREET_AT = "street";
198        String STREET_ADDRESS_AT = "streetAddress";
199        String STREET_AT_OID = "2.5.4.9";
200    
201        // PostalCode
202        String POSTALCODE_AT = "postalCode";
203        String POSTALCODE_AT_OID = "2.5.4.17";
204    
205        // PostalCode
206        String C_POSTALCODE_AT = "c-postalCode";
207        String C_POSTALCODE_AT_OID = "2.5.4.17.1";
208    
209        // PostOfficeBox
210        String POSTOFFICEBOX_AT = "postOfficeBox";
211        String POSTOFFICEBOX_AT_OID = "2.5.4.18";
212    
213        // SearchGuide
214        String SEARCHGUIDE_AT = "searchguide";
215        String SEARCHGUIDE_AT_OID = "2.5.4.14";
216    
217        // Ou
218        String O_AT = "o";
219        String ORGANIZATION_NAME_AT = "organizationName";
220        String O_AT_OID = "2.5.4.10";
221    
222        // Ou
223        String OU_AT = "ou";
224        String ORGANIZATIONAL_UNIT_NAME_AT = "organizationalUnitName";
225        String OU_AT_OID = "2.5.4.11";
226    
227        // Member
228        String MEMBER_AT = "member";
229        String MEMBER_AT_OID = "2.5.4.31";
230    
231        // UserPassword
232        String USER_PASSWORD_AT = "userPassword";
233        String USER_PASSWORD_AT_OID = "2.5.4.35";
234    
235        // UniqueMember
236        String UNIQUE_MEMBER_AT = "uniqueMember";
237        String UNIQUE_MEMBER_AT_OID = "2.5.4.50";
238    
239        // ExcludeAllColectiveAttributes
240        String EXCLUDE_ALL_COLLECTIVE_ATTRIBUTES_AT = "excludeAllCollectiveAttributes";
241        String EXCLUDE_ALL_COLLECTIVE_ATTRIBUTES_AT_OID = "2.5.18.0";
242        
243            // CreateTimestamp
244        String CREATE_TIMESTAMP_AT = "createTimestamp";
245        String CREATE_TIMESTAMP_AT_OID = "2.5.18.1";
246        
247        // ModifyTimestamp
248        String MODIFY_TIMESTAMP_AT = "modifyTimestamp";
249        String MODIFY_TIMESTAMP_AT_OID = "2.5.18.2";
250        
251        // CreatorsName
252        String CREATORS_NAME_AT = "creatorsName";
253        String CREATORS_NAME_AT_OID = "2.5.18.3";
254        
255        // ModifiersName
256        String MODIFIERS_NAME_AT = "modifiersName";
257        String MODIFIERS_NAME_AT_OID = "2.5.18.4";
258        
259        // SubtreeSpecification
260        String SUBTREE_SPECIFICATION_AT = "subtreeSpecification";
261        String SUBTREE_SPECIFICATION_AT_OID = "2.5.18.6";
262    
263        // CollectiveExclusions
264        String COLLECTIVE_EXCLUSIONS_AT = "collectiveExclusions";
265        String COLLECTIVE_EXCLUSIONS_AT_OID = "2.5.18.7";
266    
267        // SubschemaSubentry
268        String SUBSCHEMA_SUBENTRY_AT = "subschemaSubentry";
269        String SUBSCHEMA_SUBENTRY_AT_OID = "2.5.18.10";
270    
271        // CollectiveAttributeSubentries
272        String COLLECTIVE_ATTRIBUTE_SUBENTRIES_AT = "collectiveAttributeSubentries";
273        String COLLECTIVE_ATTRIBUTE_SUBENTRIES_AT_OID = "2.5.18.12";
274    
275        // DitStructureRules
276        String DIT_STRUCTURE_RULES_AT = "ditStructureRules";
277        String DIT_STRUCTURE_RULES_AT_OID = "2.5.21.1";
278        
279        // DitContentRules
280        String DIT_CONTENT_RULES_AT = "ditContentRules";
281        String DIT_CONTENT_RULES_AT_OID = "2.5.21.2";
282        
283        // MatchingRules
284        String MATCHING_RULES_AT = "matchingRules";
285        String MATCHING_RULES_AT_OID = "2.5.21.4";
286        
287        // AttributeTypes
288        String ATTRIBUTE_TYPES_AT = "attributeTypes";
289        String ATTRIBUTE_TYPES_AT_OID = "2.5.21.5";
290        
291        // ObjectClasses
292        String OBJECT_CLASSES_AT = "objectClasses";
293        String OBJECT_CLASSES_AT_OID = "2.5.21.6";
294    
295        // NameForms
296        String NAME_FORMS_AT = "nameForms";
297        String NAME_FORMS_AT_OID = "2.5.21.7";
298    
299        // MatchingRuleUse
300        String MATCHING_RULE_USE_AT = "matchingRuleUse";
301        String MATCHING_RULE_USE_AT_OID = "2.5.21.8";
302        
303        // StructuralObjectClass
304        String STRUCTURAL_OBJECT_CLASS_AT = "structuralObjectClass";
305        String STRUCTURAL_OBJECT_CLASS_AT_OID = "2.5.21.9";
306        
307        // AccessControlScheme
308        String ACCESS_CONTROL_SCHEME_AT = "accessControlScheme";
309        String ACCESS_CONTROL_SCHEME_OID = "2.5.24.1";
310        
311        // PrescriptiveACI
312        String PRESCRIPTIVE_ACI_AT = "prescriptiveACI";
313        String PRESCRIPTIVE_ACI_AT_OID = "2.5.24.4";
314        
315        // EntryACI
316        String ENTRY_ACI_AT = "entryACI";
317        String ENTRY_ACI_AT_OID = "2.5.24.5";
318        
319        // SubentryACI
320        String SUBENTRY_ACI_AT = "subentryACI";
321        String SUBENTRY_ACI_AT_OID = "2.5.24.6";
322        
323        // Uid
324        String UID_AT = "uid";
325        String USER_ID_AT = "userid";
326        String UID_AT_OID = "0.9.2342.19200300.100.1.1";
327    
328        // UidObject
329        String UID_OBJECT_AT = "uidObject";
330        String UID_OBJECT_AT_OID = "1.3.6.1.1.3.1";
331        
332        // VendorName
333        String VENDOR_NAME_AT = "vendorName";
334        String VENDOR_NAME_AT_OID = "1.3.6.1.1.4";
335        
336        // VendorVersion
337        String VENDOR_VERSION_AT = "vendorVersion";
338        String VENDOR_VERSION_AT_OID = "1.3.6.1.1.5";
339        
340        // NamingContexts
341        String NAMING_CONTEXTS_AT = "namingContexts";
342        String NAMING_CONTEXTS_AT_OID = "1.3.6.1.4.1.1466.101.120.5";
343        
344        // ChangeLogContext
345        String CHANGELOG_CONTEXT_AT = "changeLogContext";
346        String CHANGELOG_CONTEXT_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.49";
347        
348        // SupportedExtension
349        String SUPPORTED_EXTENSION_AT = "supportedExtension";
350        String SUPPORTED_EXTENSION_AT_OID = "1.3.6.1.4.1.1466.101.120.7";
351    
352        // supportedSASLMechanisms
353        String SUPPORTED_SASL_MECHANISMS_AT = "supportedSASLMechanisms";
354        String SUPPORTED_SASL_MECHANISMS_AT_OID = "1.3.6.1.4.1.1466.101.120.14";
355        
356        // supportedControl
357        String SUPPORTED_CONTROL_AT = "supportedControl";
358        String SUPPORTED_CONTROL_AT_OID = "1.3.6.1.4.1.1466.101.120.13";
359        
360        // SupportedLdapVersion
361        String SUPPORTED_LDAP_VERSION_AT = "supportedLDAPVersion";
362        String SUPPORTED_LDAP_VERSION_AT_OID = "1.3.6.1.4.1.1466.101.120.15";
363    
364        // LdapSyntaxes
365        String LDAP_SYNTAXES_AT = "ldapSyntaxes";
366        String LDAP_SYNTAXES_AT_OID = "1.3.6.1.4.1.1466.101.120.16";
367        
368        // SupportedFeatures
369        String SUPPORTED_FEATURES_AT = "supportedFeatures";
370        String SUPPORTED_FEATURES_AT_OID = "1.3.6.1.4.1.4203.1.3.5";
371        
372        // AccessControlSubentries
373        String ACCESS_CONTROL_SUBENTRIES_AT = "accessControlSubentries";
374        String ACCESS_CONTROL_SUBENTRIES_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.11";
375    
376        // TriggerExecutionSubentries
377        String TRIGGER_EXECUTION_SUBENTRIES_AT = "triggerExecutionSubentries";
378        String TRIGGER_EXECUTION_SUBENTRIES_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.27";
379    
380        // Comparators
381        String COMPARATORS_AT = "comparators";
382        String COMPARATORS_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.32";
383        
384        // Normalizers
385        String NORMALIZERS_AT = "normalizers";
386        String NORMALIZERS_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.33";
387    
388        // SyntaxCheckers
389        String SYNTAX_CHECKERS_AT = "syntaxCheckers";
390        String SYNTAX_CHECKERS_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.34";
391    
392        // Ref
393        String REF_AT = "ref";
394        String REF_AT_OID = "2.16.840.1.113730.3.1.34";
395    
396        // DisplayName
397        String DISPLAY_NAME_AT = "displayName";
398        String DISPLAY_NAME_AT_OID = "2.16.840.1.113730.3.1.241";
399    
400        // governingStructureRule
401        String GOVERNING_STRUCTURE_RULE_AT = "governingStructureRule";
402        String GOVERNING_STRUCTURE_RULE_AT_OID = "2.5.21.10";
403        
404        // entryUUID
405        String ENTRY_UUID_AT = "entryUUID";
406        String ENTRY_UUID_AT_OID = "1.3.6.1.1.16.4";
407        
408        // entryCSN
409        String ENTRY_CSN_AT = "entryCSN";
410        String ENTRY_CSN_AT_OID = "1.3.6.1.4.1.4203.666.1.7";
411        
412        // contextCSN
413        String CONTEXT_CSN_AT = "contextCSN";
414        String CONTEXT_CSN_AT_OID = "1.3.6.1.4.1.4203.666.1.25";
415        
416        // entryDN
417        String ENTRY_DN_AT = "entryDN";
418        String ENTRY_DN_AT_OID = "1.3.6.1.1.20";
419    
420        // hasSubordinates
421        String HAS_SUBORDINATES_AT = "hasSubordinates";
422        String HAS_SUBORDINATES_AT_OID = "2.5.18.9";
423    
424        // numSubordinates, by Sun
425        String NUM_SUBORDINATES_AT = "numSubordinates";
426        // no official OID in RFCs
427    
428        // subordinateCount, by Novell
429        String SUBORDINATE_COUNT_AT = "subordinateCount";
430        // no official OID in RFCs
431        
432        //-------------------------------------------------------------------------
433        // ---- Syntaxes ----------------------------------------------------------
434        //-------------------------------------------------------------------------
435        // RFC 2252, removed in RFC 4517
436        String ACI_ITEM_SYNTAX                        = "1.3.6.1.4.1.1466.115.121.1.1";
437    
438        // RFC 2252, removed in RFC 4517
439        String ACCESS_POINT_SYNTAX                    = "1.3.6.1.4.1.1466.115.121.1.2";
440        
441        // RFC 4517, chap 3.3.1
442        String ATTRIBUT_TYPE_DESCRIPTION_SYNTAX       = "1.3.6.1.4.1.1466.115.121.1.3";
443    
444        // RFC 2252, removed in RFC 4517
445        String AUDIO_SYNTAX                           = "1.3.6.1.4.1.1466.115.121.1.4";
446    
447        // RFC 2252, removed in RFC 4517
448        String BINARY_SYNTAX                          = "1.3.6.1.4.1.1466.115.121.1.5";
449        
450        // RFC 4517, chap 3.3.2
451        String BIT_STRING_SYNTAX                      = "1.3.6.1.4.1.1466.115.121.1.6";
452        
453        // RFC 4517, chap 3.3.3
454        String BOOLEAN_SYNTAX                         = "1.3.6.1.4.1.1466.115.121.1.7";
455        
456        // RFC 2252, removed in RFC 4517, reintroduced in RFC 4523, chap. 2.1 
457        String CERTIFICATE_SYNTAX                     = "1.3.6.1.4.1.1466.115.121.1.8";
458        
459        // RFC 2252, removed in RFC 4517, reintroduced in RFC 4523, chap. 2.2 
460        String CERTIFICATE_LIST_SYNTAX                = "1.3.6.1.4.1.1466.115.121.1.9";
461    
462        // RFC 2252, removed in RFC 4517, reintroduced in RFC 4523, chap. 2.3 
463        String CERTIFICATE_PAIR_SYNTAX                = "1.3.6.1.4.1.1466.115.121.1.10";
464        
465        // RFC 4517, chap 3.3.4
466        String COUNTRY_STRING_SYNTAX                  = "1.3.6.1.4.1.1466.115.121.1.11";
467        
468        // RFC 4517, chap 3.3.9
469        String DN_SYNTAX                              = "1.3.6.1.4.1.1466.115.121.1.12";
470    
471        // RFC 2252, removed in RFC 4517
472        String DATA_QUALITY_SYNTAX                    = "1.3.6.1.4.1.1466.115.121.1.13";
473        
474        // RFC 4517, chap 3.3.5
475        String DELIVERY_METHOD_SYNTAX                 = "1.3.6.1.4.1.1466.115.121.1.14";
476        
477        // RFC 4517, chap 3.3.6
478        String DIRECTORY_STRING_SYNTAX                = "1.3.6.1.4.1.1466.115.121.1.15";
479        
480        // RFC 4517, chap 3.3.7
481        String DIT_CONTENT_RULE_SYNTAX                = "1.3.6.1.4.1.1466.115.121.1.16";
482        
483        // RFC 4517, chap 3.3.8
484        String DIT_STRUCTURE_RULE_SYNTAX              = "1.3.6.1.4.1.1466.115.121.1.17";
485        
486        // RFC 2252, removed in RFC 4517
487        String DL_SUBMIT_PERMISSION_SYNTAX            = "1.3.6.1.4.1.1466.115.121.1.18";
488    
489        // RFC 2252, removed in RFC 4517
490        String DSA_QUALITY_SYNTAX                     = "1.3.6.1.4.1.1466.115.121.1.19";
491    
492        // RFC 2252, removed in RFC 4517
493        String DSE_TYPE_SYNTAX                        = "1.3.6.1.4.1.1466.115.121.1.20";
494        
495        // RFC 4517, chap 3.3.10
496        String ENHANCED_GUIDE_SYNTAX                  = "1.3.6.1.4.1.1466.115.121.1.21";
497        
498        // RFC 4517, chap 3.3.11
499        String FACSIMILE_TELEPHONE_NUMBER_SYNTAX      = "1.3.6.1.4.1.1466.115.121.1.22";
500        
501        // RFC 4517, chap 3.3.12
502        String FAX_SYNTAX                             = "1.3.6.1.4.1.1466.115.121.1.23";
503        
504        // RFC 4517, chap 3.3.13
505        String GENERALIZED_TIME_SYNTAX                = "1.3.6.1.4.1.1466.115.121.1.24";
506        
507        // RFC 4517, chap 3.3.14
508        String GUIDE_SYNTAX                           = "1.3.6.1.4.1.1466.115.121.1.25";
509        
510        // RFC 4517, chap 3.3.15
511        String IA5_STRING_SYNTAX                      = "1.3.6.1.4.1.1466.115.121.1.26";
512        
513        // RFC 4517, chap 3.3.16
514        String INTEGER_SYNTAX                         = "1.3.6.1.4.1.1466.115.121.1.27";
515        
516        // RFC 4517, chap 3.3.17
517        String JPEG_SYNTAX                            = "1.3.6.1.4.1.1466.115.121.1.28";
518        
519        // RFC 2252, removed in RFC 4517
520        String MASTER_AND_SHADOW_ACCESS_POINTS_SYNTAX = "1.3.6.1.4.1.1466.115.121.1.29";
521        
522        // RFC 4517, chap 3.3.19
523        String MATCHING_RULE_DESCRIPTION_SYNTAX       = "1.3.6.1.4.1.1466.115.121.1.30";
524        
525        // RFC 4517, chap 3.3.20
526        String MATCHING_RULE_USE_DESCRIPTION_SYNTAX   = "1.3.6.1.4.1.1466.115.121.1.31";
527        
528        // RFC 2252, removed in RFC 4517
529        String MAIL_PREFERENCE_SYNTAX                 = "1.3.6.1.4.1.1466.115.121.1.32";
530        
531        // RFC 2252, removed in RFC 4517
532        String MHS_OR_ADDRESS_SYNTAX                  = "1.3.6.1.4.1.1466.115.121.1.33"; 
533        
534        // RFC 4517, chap 3.3.21
535        String NAME_AND_OPTIONAL_UID_SYNTAX           = "1.3.6.1.4.1.1466.115.121.1.34";
536        
537        // RFC 4517, chap 3.3.22
538        String NAME_FORM_DESCRIPTION_SYNTAX           = "1.3.6.1.4.1.1466.115.121.1.35";
539        
540        // RFC 4517, chap 3.3.23
541        String NUMERIC_STRING_SYNTAX                  = "1.3.6.1.4.1.1466.115.121.1.36";
542        
543        // RFC 4517, chap 3.3.24
544        String OBJECT_CLASS_DESCRIPTION_SYNTAX        = "1.3.6.1.4.1.1466.115.121.1.37";
545        
546        // RFC 4517, chap 3.3.26
547        String OID_SYNTAX                             = "1.3.6.1.4.1.1466.115.121.1.38";
548        
549        // RFC 4517, chap 3.3.27
550        String OTHER_MAILBOX_SYNTAX                   = "1.3.6.1.4.1.1466.115.121.1.39";
551        
552        // RFC 4517, chap 3.3.25
553        String OCTET_STRING_SYNTAX                    = "1.3.6.1.4.1.1466.115.121.1.40";
554        
555        // RFC 4517, chap 3.3.28
556        String POSTAL_ADDRESS_SYNTAX                  = "1.3.6.1.4.1.1466.115.121.1.41";
557        
558        // RFC 2252, removed in RFC 4517
559        String PROTOCOL_INFORMATION_SYNTAX            = "1.3.6.1.4.1.1466.115.121.1.42";
560        
561        // RFC 2252, removed in RFC 4517
562        String PRESENTATION_ADDRESS_SYNTAX            = "1.3.6.1.4.1.1466.115.121.1.43";
563        
564        // RFC 4517, chap 3.3.29
565        String PRINTABLE_STRING_SYNTAX                = "1.3.6.1.4.1.1466.115.121.1.44";
566        
567        // RFC 2252, removed in RFC 4517
568        String SUBTREE_SPECIFICATION_SYNTAX           = "1.3.6.1.4.1.1466.115.121.1.45";
569        
570        // RFC 2252, removed in RFC 4517
571        String SUPPLIER_INFORMATION_SYNTAX            = "1.3.6.1.4.1.1466.115.121.1.46";
572        
573        // RFC 2252, removed in RFC 4517
574        String SUPPLIER_OR_CONSUMER_SYNTAX            = "1.3.6.1.4.1.1466.115.121.1.47";
575        
576        // RFC 2252, removed in RFC 4517
577        String SUPPLIER_AND_CONSUMER_SYNTAX           = "1.3.6.1.4.1.1466.115.121.1.48";
578    
579        // RFC 2252, removed in RFC 4517, reintroduced in RFC 4523, chap. 2.4
580        String SUPPORTED_ALGORITHM_SYNTAX             = "1.3.6.1.4.1.1466.115.121.1.49";
581        
582        // RFC 4517, chap 3.3.31
583        String TELEPHONE_NUMBER_SYNTAX                = "1.3.6.1.4.1.1466.115.121.1.50";
584    
585        // RFC 4517, chap 3.3.32
586        String TELETEX_TERMINAL_IDENTIFIER_SYNTAX     = "1.3.6.1.4.1.1466.115.121.1.51";
587        
588        // RFC 4517, chap 3.3.33
589        String TELEX_NUMBER_SYNTAX                    = "1.3.6.1.4.1.1466.115.121.1.52"; 
590        
591        // RFC 4517, chap 3.3.34
592        String UTC_TIME_SYNTAX                        = "1.3.6.1.4.1.1466.115.121.1.53";
593        
594        // RFC 4517, chap 3.3.18
595        String LDAP_SYNTAX_DESCRIPTION_SYNTAX         = "1.3.6.1.4.1.1466.115.121.1.54";
596        
597        // RFC 2252, removed in RFC 4517
598        String MODIFY_RIGHTS_SYNTAX                   = "1.3.6.1.4.1.1466.115.121.1.55";
599        
600        // RFC 2252, removed in RFC 4517
601        String LDAP_SCHEMA_DEFINITION_SYNTAX          = "1.3.6.1.4.1.1466.115.121.1.56";
602        
603        // RFC 2252, removed in RFC 4517
604        String LDAP_SCHEMA_DESCRIPTION_SYNTAX         = "1.3.6.1.4.1.1466.115.121.1.57";
605        
606        // RFC 4517, chap 3.3.30
607        String SUBSTRING_ASSERTION_SYNTAX             = "1.3.6.1.4.1.1466.115.121.1.58";
608    
609        // From draft-ietf-pkix-ldap-v3-01.txt. Obsolete.
610        String ATTRIBUTE_CERTIFICATE_ASSERTION_SYNTAX = "1.3.6.1.4.1.1466.115.121.1.59";
611    
612        //From RFC 4530, chap. 2.1
613        String UUID_SYNTAX                            = "1.3.6.1.1.16.1";
614        
615        // From http://www.openldap.org/faq/data/cache/1145.html
616        String CSN_SYNTAX                             = "1.3.6.1.4.1.4203.666.11.2.1"; 
617        
618        // From http://www.openldap.org/faq/data/cache/1145.html
619        String CSN_SID_SYNTAX                         = "1.3.6.1.4.1.4203.666.11.2.4";
620    
621        // Apache DS
622        String JAVA_BYTE_SYNTAX                       = "1.3.6.1.4.1.18060.0.4.1.0.0";
623        String JAVA_CHAR_SYNTAX                       = "1.3.6.1.4.1.18060.0.4.1.0.1";
624        String JAVA_SHORT_SYNTAX                      = "1.3.6.1.4.1.18060.0.4.1.0.2";
625        String JAVA_LONG_SYNTAX                       = "1.3.6.1.4.1.18060.0.4.1.0.3";
626        String JAVA_INT_SYNTAX                        = "1.3.6.1.4.1.18060.0.4.1.0.4";
627    
628        // Comparator syntax
629        String COMPARATOR_SYNTAX                      = "1.3.6.1.4.1.18060.0.4.1.0.5";
630        
631        // Normalizer Syntax
632        String NORMALIZER_SYNTAX                      = "1.3.6.1.4.1.18060.0.4.1.0.6";
633        
634        // SyntaxChecker Syntax
635        String SYNTAX_CHECKER_SYNTAX                  = "1.3.6.1.4.1.18060.0.4.1.0.7";
636        
637        //-------------------------------------------------------------------------
638        // ---- MatchingRules -----------------------------------------------------
639        //-------------------------------------------------------------------------
640        // caseExactIA5Match (RFC 4517, chap. 4.2.3)
641        String CASE_EXACT_IA5_MATCH_MR                        = "caseExactIA5Match";
642        String CASE_EXACT_IA5_MATCH_MR_OID                    = "1.3.6.1.4.1.1466.109.114.1";
643        
644        // caseIgnoreIA5Match (RFC 4517, chap. 4.2.7)
645        String CASE_IGNORE_IA5_MATCH_MR                       = "caseIgnoreIA5Match";
646        String CASE_IGNORE_IA5_MATCH_MR_OID                   = "1.3.6.1.4.1.1466.109.114.2";
647        
648        // caseIgnoreIA5SubstringsMatch (RFC 4517, chap. 4.2.8)
649        String CASE_IGNORE_IA5_SUBSTRINGS_MATCH_MR            = "caseIgnoreIA5SubstringsMatch";
650        String CASE_IGNORE_IA5_SUBSTRINGS_MATCH_MR_OID        = "1.3.6.1.4.1.1466.109.114.3";
651        
652        // objectIdentifierMatch (RFC 4517, chap. 4.2.26)
653        String OBJECT_IDENTIFIER_MATCH_MR                     = "objectIdentifierMatch";
654        String OBJECT_IDENTIFIER_MATCH_MR_OID                 = "2.5.13.0";
655        
656        // distinguishedNameMatch (RFC 4517, chap. 4.2.15)
657        String DISTINGUISHED_NAME_MATCH_MR                    = "distinguishedNameMatch";
658        String DISTINGUISHED_NAME_MATCH_MR_OID                = "2.5.13.1";
659        
660        // caseIgnoreMatch (RFC 4517, chap. 3.3.19)
661        String CASE_IGNORE_MATCH_MR                           = "caseIgnoreMatch";
662        String CASE_IGNORE_MATCH_MR_OID                       = "2.5.13.2";
663        
664        // caseIgnoreOrderingMatch (RFC 4517, chap. 4.2.12)
665        String CASE_IGNORE_ORDERING_MATCH_MR                  = "caseIgnoreOrderingMatch";
666        String CASE_IGNORE_ORDERING_MATCH_MR_OID              = "2.5.13.3";
667        
668        // caseIgnoreSubstringsMatch (RFC 4517, chap. 4.2.13)
669        String CASE_IGNORE_SUBSTRING_MATCH_MR                 = "caseIgnoreSubstringsMatch";
670        String CASE_IGNORE_SUBSTRING_MATCH_MR_OID             = "2.5.13.4";
671        
672        // caseExactMatch (RFC 4517, chap. 4.2.4)
673        String CASE_EXACT_MATCH_MR                            = "caseExactMatch";
674        String CASE_EXACT_MATCH_MR_OID                        = "2.5.13.5";
675        
676        // caseExactOrderingMatch (RFC 4517, chap. 4.2.5)
677        String CASE_EXACT_ORDERING_MATCH_MR                   = "caseExactOrderingMatch";
678        String CASE_EXACT_ORDERING_MATCH_MR_OID               = "2.5.13.6";
679        
680        // caseExactSubstringsMatch (RFC 4517, chap. 4.2.6)
681        String CASE_EXACT_SUBSTRING_MATCH_MR                  = "caseExactSubstringsMatch";
682        String CASE_EXACT_SUBSTRING_MATCH_MR_OID              = "2.5.13.7";
683        
684        // numericStringMatch (RFC 4517, chap. 4.2.22)
685        String NUMERIC_STRING_MATCH_MR                        = "numericStringMatch";
686        String NUMERIC_STRING_MATCH_MR_OID                    = "2.5.13.8";
687        
688        // numericStringOrderingMatch (RFC 4517, chap. 4.2.23)
689        String NUMERIC_STRING_ORDERING_MATCH_MR               = "numericStringOrderingMatch";
690        String NUMERIC_STRING_ORDERING_MATCH_MR_OID           = "2.5.13.9";
691        
692        // numericStringSubstringsMatch (RFC 4517, chap. 4.2.24)
693        String NUMERIC_STRING_SUBSTRINGS_MATCH_MR             = "numericStringSubstringsMatch";
694        String NUMERIC_STRING_SUBSTRINGS_MATCH_MR_OID         = "2.5.13.10";
695        
696        // caseIgnoreListMatch (RFC 4517, chap. 4.2.9)
697        String CASE_IGNORE_LIST_MATCH_MR                      = "caseIgnoreListMatch";
698        String CASE_IGNORE_LIST_MATCH_MR_OID                  = "2.5.13.11";
699        
700        // caseIgnoreListSubstringsMatch (RFC 4517, chap. 4.2.10)
701        String CASE_IGNORE_LIST_SUBSTRINGS_MATCH_MR           = "caseIgnoreListSubstringsMatch";
702        String CASE_IGNORE_LIST_SUBSTRINGS_MATCH_MR_OID       = "2.5.13.12";
703        
704        // booleanMatch (RFC 4517, chap. 4.2.2)
705        String BOOLEAN_MATCH_MR                               = "booleanMatch";
706        String BOOLEAN_MATCH_MR_OID                           = "2.5.13.13";
707        
708        // integerMatch (RFC 4517, chap. 4.2.19)
709        String INTEGER_MATCH_MR                               = "integerMatch";
710        String INTEGER_MATCH_MR_OID                           = "2.5.13.14";
711        
712        // integerOrderingMatch (RFC 4517, chap. 4.2.20)
713        String INTEGER_ORDERING_MATCH_MR                      = "integerOrderingMatch";
714        String INTEGER_ORDERING_MATCH_MR_OID                  = "2.5.13.15";
715    
716        // bitStringMatch (RFC 4517, chap. 4.2.1)
717        String BIT_STRING_MATCH_MR                            = "bitStringMatch";
718        String BIT_STRING_MATCH_MR_OID                        = "2.5.13.16";
719        
720        // octetStringMatch (RFC 4517, chap. 4.2.27)
721        String OCTET_STRING_MATCH_MR                          = "octetStringMatch";
722        String OCTET_STRING_MATCH_MR_OID                     = "2.5.13.17";
723        
724        // octetStringMatch (RFC 4517, chap. 4.2.28)
725        String OCTET_STRING_ORDERING_MATCH_MR                 = "octetStringOrderingMatch";
726        String OCTET_STRING_ORDERING_MATCH_MR_OID             = "2.5.13.18";
727        
728        // octetStringSubstringsMatch
729        String OCTET_STRING_SUBSTRINGS_MATCH_MR               = "octetStringSubstringsMatch";
730        String OCTET_STRING_SUBSTRINGS_MATCH_MR_OID           = "2.5.13.19";
731        
732        // telephoneNumberMatch (RFC 4517, chap. 4.2.29)
733        String TELEPHONE_NUMBER_MATCH_MR                      = "telephoneNumberMatch";
734        String TELEPHONE_NUMBER_MATCH_MR_OID                  = "2.5.13.20";
735        
736        // telephoneNumberMatch (RFC 4517, chap. 4.2.30)
737        String TELEPHONE_NUMBER_SUBSTRINGS_MATCH_MR           = "telephoneNumberSubstringsMatch";
738        String TELEPHONE_NUMBER_SUBSTRINGS_MATCH_MR_OID       = "2.5.13.21";
739        
740        // presentationAddressMatch Removed in RFC 4517
741        String PRESENTATION_ADDRESS_MATCH_MATCH_MR            = "presentationAddressMatch";
742        String PRESENTATION_ADDRESS_MATCH_MATCH_MR_OID        = "2.5.13.22";
743        
744        // uniqueMemberMatch (RFC 4517, chap. 4.2.31)
745        String UNIQUE_MEMBER_MATCH_MATCH_MR                   = "uniqueMemberMatch";
746        String UNIQUE_MEMBER_MATCH_MATCH_MR_OID               = "2.5.13.23";
747        
748        // protocolInformationMatch Removed in RFC 4517
749        String PROTOCOL_INFORMATION_MATCH_MATCH_MR            = "protocolInformationMatch";
750        String PROTOCOL_INFORMATION_MATCH_MATCH_MR_OID        = "2.5.13.24";
751        
752        // "2.5.13.25" is not used ...
753        // "2.5.13.26" is not used ...
754        
755        // generalizedTimeMatch (RFC 4517, chap. 4.2.16)
756        String GENERALIZED_TIME_MATCH_MR                      = "generalizedTimeMatch";
757        String GENERALIZED_TIME_MATCH_MR_OID                  = "2.5.13.27";
758        
759        // generalizedTimeOrderingMatch (RFC 4517, chap. 4.2.17)
760        String GENERALIZED_TIME_ORDERING_MATCH_MR             = "generalizedTimeOrderingMatch";
761        String GENERALIZED_TIME_ORDERING_MATCH_MR_OID         = "2.5.13.28";
762    
763        // integerFirstComponentMatch (RFC 4517, chap. 4.2.18)
764        String INTEGER_FIRST_COMPONENT_MATCH_MR               = "integerFirstComponentMatch";
765        String INTEGER_FIRST_COMPONENT_MATCH_MR_OID           = "2.5.13.29";
766        
767        // objectIdentifierFirstComponentMatch (RFC 4517, chap. 4.2.25)
768        String OBJECT_IDENTIFIER_FIRST_COMPONENT_MATCH_MR     = "objectIdentifierFirstComponentMatch";
769        String OBJECT_IDENTIFIER_FIRST_COMPONENT_MATCH_MR_OID = "2.5.13.30";
770    
771        // directoryStringFirstComponentMatch (RFC 4517, chap. 4.2.14)
772        String DIRECTORY_STRING_FIRST_COMPONENT_MATCH_MR      = "directoryStringFirstComponentMatch";
773        String DIRECTORY_STRING_FIRST_COMPONENT_MATCH_MR_OID  = "2.5.13.31";
774    
775        // wordMatch (RFC 4517, chap. 4.2.32)
776        String WORD_MATCH_MR                                  = "wordMatch";
777        String WORD_MATCH_MR_OID                              = "2.5.13.32";
778    
779        // keywordMatch (RFC 4517, chap. 4.2.21)
780        String KEYWORD_MATCH_MR                               = "keywordMatch";
781        String KEYWORD_MATCH_MR_OID                           = "2.5.13.33";
782    
783        // uuidMatch
784        String UUID_MATCH_MR                                  = "uuidMatch";
785        String UUID_MATCH_MR_OID                              = "1.3.6.1.1.16.2";
786        
787        // uuidOrderingMatch
788        String UUID_ORDERING_MATCH_MR                         = "uuidOrderingMatch";
789        String UUID_ORDERING_MATCH_MR_OID                     = "1.3.6.1.1.16.3";
790        
791        // csnMatch 
792        String CSN_MATCH_MR                                   = "csnMatch"; 
793        String CSN_MATCH_MR_OID                               = "1.3.6.1.4.1.4203.666.11.2.2"; 
794        
795        // csnOrderingMatch
796        String CSN_ORDERING_MATCH_MR                          = "csnOrderingMatch"; 
797        String CSN_ORDERING_MATCH_MR_OID                      = "1.3.6.1.4.1.4203.666.11.2.3"; 
798        
799        // csnSidMatch
800        String CSN_SID_MATCH_MR                               = "csnSidMatch"; 
801        String CSN_SID_MATCH_MR_OID                           = "1.3.6.1.4.1.4203.666.11.2.5"; 
802        
803        // ComparatorMatch
804        String COMPARATOR_MATCH_MR                            = "comparatorMatch"; 
805        String COMPARATOR_MATCH_MR_OID                        = "1.3.6.1.4.1.18060.0.4.1.1.5"; 
806        
807        // NormalizerMatch
808        String NORMALIZER_MATCH_MR                            = "normalizerMatch"; 
809        String NORMALIZER_MATCH_MR_OID                        = "1.3.6.1.4.1.18060.0.4.1.1.6"; 
810        
811        // SyntaxCheckerMatch
812        String SYNTAX_CHECKER_MATCH_MR                        = "syntaxCheckerMatch"; 
813        String SYNTAX_CHECKER_MATCH_MR_OID                    = "1.3.6.1.4.1.18060.0.4.1.1.7"; 
814        
815        // ---- Features ----------------------------------------------------------
816        String FEATURE_ALL_OPERATIONAL_ATTRIBUTES             = "1.3.6.1.4.1.4203.1.5.1";
817    }