Package org.ldaptive.ad.schema
Class SchemaFactory
java.lang.Object
org.ldaptive.ad.schema.SchemaFactory
Factory to create
Schema from an active directory schema search result. Active Directory does not adhere to
RFC 4512 to represent its schema. Each schema element is represented with a separate LDAP entry. The factory parses
and sets the object classes and attribute types for the schema. The other properties on the schema object are not
available.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final StringAdmin description attribute name on the entry.private static final StringAdmin display name attribute name on the entry.private static final StringAttribute ID attribute name on the entry.private static final StringAttribute schema attribute name on the entry.private static final StringAttribute syntax attribute name on the entry.private static final StringClass schema attribute name on the entry.private static final StringGoverns ID attribute name on the entry.private static final StringIs single valued attribute name on the entry.private static final StringLDAP display name attribute name on the entry.private static final StringMay contain attribute name on the entry.private static final StringMust contain attribute name on the entry.private static final StringName attribute name on the entry.private static final StringObject class attribute name on the entry.private static final StringObject class category attribute name on the entry.private static final StringFilter for schema entries.private static final StringAttribute on the root DSE indicating the location of the schema entries.private static final StringSub class of attribute name on the entry.private static final StringSystem may contain attribute name on the entry.private static final StringSystem must contain attribute name on the entry.private static final StringSystem only attribute name on the entry. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static AttributeTypecreateAttributeType(LdapEntry entry) Creates an attribute type from the supplied ldap entry.private static ObjectClasscreateObjectClass(LdapEntry entry) Creates an object class from the supplied ldap entry.static SchemaCreates a new schema.static SchemacreateSchema(ConnectionFactory factory) Creates a new schema.static SchemacreateSchema(ConnectionFactory factory, String entryDn) Creates a new schema.private static SchemacreateSchema(ConnectionFactory factory, String dn, String filter, String... retAttrs) Searches for the supplied dn and returns its ldap entry.static SchemacreateSchema(SearchResponse schemaResult) Creates a new schema.private static String[]getAllAttributeValues(LdapEntry entry, String... names) Returns the values for all attributes with the supplied names found in the supplied entry.private static String[]getFirstAttributeValues(LdapEntry entry, String... names) Returns the values for the first attribute name found in the supplied entry.
-
Field Details
-
SCHEMA_NAMING_CONTEXT_ATTR_NAME
Attribute on the root DSE indicating the location of the schema entries.- See Also:
-
SCHEMA_FILTER
Filter for schema entries.- See Also:
-
OBJECT_CLASS_ATTR_NAME
Object class attribute name on the entry.- See Also:
-
OBJECT_CLASS_CATEGORY_ATTR_NAME
Object class category attribute name on the entry.- See Also:
-
ATTRIBUTE_SCHEMA_ATTR_NAME
Attribute schema attribute name on the entry.- See Also:
-
CLASS_SCHEMA_ATTR_NAME
Class schema attribute name on the entry.- See Also:
-
ATTRIBUTE_ID_ATTR_NAME
Attribute ID attribute name on the entry.- See Also:
-
LDAP_DISPLAY_NAME_ATTR_NAME
LDAP display name attribute name on the entry.- See Also:
-
ADMIN_DISPLAY_NAME_ATTR_NAME
Admin display name attribute name on the entry.- See Also:
-
NAME_ATTR_NAME
Name attribute name on the entry.- See Also:
-
ADMIN_DESCRIPTION_ATTR_NAME
Admin description attribute name on the entry.- See Also:
-
ATTRIBUTE_SYNTAX_ATTR_NAME
Attribute syntax attribute name on the entry.- See Also:
-
IS_SINGLE_VALUED_ATTR_NAME
Is single valued attribute name on the entry.- See Also:
-
SYSTEM_ONLY_ATTR_NAME
System only attribute name on the entry.- See Also:
-
GOVERNS_ID_ATTR_NAME
Governs ID attribute name on the entry.- See Also:
-
SUB_CLASS_OF_ATTR_NAME
Sub class of attribute name on the entry.- See Also:
-
MUST_CONTAIN_ATTR_NAME
Must contain attribute name on the entry.- See Also:
-
SYSTEM_MUST_CONTAIN_ATTR_NAME
System must contain attribute name on the entry.- See Also:
-
MAY_CONTAIN_ATTR_NAME
May contain attribute name on the entry.- See Also:
-
SYSTEM_MAY_CONTAIN_ATTR_NAME
System may contain attribute name on the entry.- See Also:
-
-
Constructor Details
-
SchemaFactory
private SchemaFactory()Default constructor.
-
-
Method Details
-
createSchema
Creates a new schema. The input stream should contain the LDIF for the schema search results.- Parameters:
is- containing the schema ldif- Returns:
- schema
- Throws:
IOException- if an error occurs reading the input stream
-
createSchema
Creates a new schema. The schema naming context is searched for on the root DSE, followed by searching for all entries under the schema naming context.- Parameters:
factory- to obtain an LDAP connection from- Returns:
- schema created from the connection factory
- Throws:
LdapException- if the search fails
-
createSchema
Creates a new schema. The entryDn is searched to obtain the schema.- Parameters:
factory- to obtain an LDAP connection fromentryDn- the schema entries- Returns:
- schema
- Throws:
LdapException- if the search fails
-
createSchema
Creates a new schema. The schema result should contain entries with the 'attributeSchema' and 'classSchema' objectClasses.- Parameters:
schemaResult- containing the schema entries- Returns:
- schema
-
createSchema
private static Schema createSchema(ConnectionFactory factory, String dn, String filter, String... retAttrs) throws LdapException Searches for the supplied dn and returns its ldap entry. This methods uses the paged results search control as schema entries typically number beyond the server search size limit. An entry handler is used in order to free memory as soon an entry is processed.- Parameters:
factory- to obtain an LDAP connection fromdn- to search forfilter- to search withretAttrs- attributes to return- Returns:
- new schema
- Throws:
LdapException- if the search fails
-
createAttributeType
Creates an attribute type from the supplied ldap entry. The entry must contain an objectClass of 'attributeSchema'. This method only populates the OID, names, description, syntax, and single valued properties of the attribute type.- Parameters:
entry- containing an attribute schema- Returns:
- attribute type
-
createObjectClass
Creates an object class from the supplied ldap entry. The entry must contain an objectClass of 'classSchema'. This method only populates the OID, names, description, superior classes, object class type, required attributes, and optional attributes of the object class.- Parameters:
entry- containing a class schema- Returns:
- object class
-
getFirstAttributeValues
Returns the values for the first attribute name found in the supplied entry.- Parameters:
entry- containing the attributesnames- to search for in the entry- Returns:
- attribute values or null if no attributes are found
-
getAllAttributeValues
Returns the values for all attributes with the supplied names found in the supplied entry.- Parameters:
entry- containing the attributesnames- to search for in the entry- Returns:
- attribute values or null if no attributes are found
-