Class RootDSE

  • All Implemented Interfaces:
    LDIFRecord, java.io.Serializable
    Direct Known Subclasses:
    UnboundIDRootDSE

    @NotExtensible
    @NotMutable
    @ThreadSafety(level=COMPLETELY_THREADSAFE)
    public class RootDSE
    extends ReadOnlyEntry
    This class provides a data structure for representing the directory server root DSE. This entry provides information about the capabilities of the directory server, server vendor and version information, and published naming contexts.

    Note a root DSE object instance represents a read-only version of an entry, so all read operations allowed for an entry will succeed, but all write attempts will be rejected.

    Example

    The following example demonstrates the process for retrieving the root DSE of a directory server and using it to determine whether it supports the ServerSideSortRequestControl:
     RootDSE rootDSE = connection.getRootDSE();
     if (rootDSE.supportsControl(
          ServerSideSortRequestControl.SERVER_SIDE_SORT_REQUEST_OID))
     {
       // The directory server does support the server-side sort control.
     }
     else
     {
       // The directory server does not support the server-side sort control.
     }
     
    See Also:
    Serialized Form
    • Field Detail

      • ATTR_ALT_SERVER

        public static final java.lang.String ATTR_ALT_SERVER
        The name of the attribute that includes a set of URIs (likely in the form of LDAP URLs) of other servers that may be contacted if the target server is unavailable, as defined in RFC 4512 section 5.1.
        See Also:
        Constant Field Values
      • ATTR_CHANGELOG_DN

        public static final java.lang.String ATTR_CHANGELOG_DN
        The name of the attribute that specifies the DN that is the base of the LDAP changelog data, if available, as defined in draft-good-ldap-changelog.
        See Also:
        Constant Field Values
      • ATTR_FIRST_CHANGE_NUMBER

        public static final java.lang.String ATTR_FIRST_CHANGE_NUMBER
        The name of the attribute that may contain the change number for the first entry in the LDAP changelog. This is not defined in any public specification, but is provided by a number of servers which implement draft-good-ldap-changelog.
        See Also:
        Constant Field Values
      • ATTR_LAST_CHANGE_NUMBER

        public static final java.lang.String ATTR_LAST_CHANGE_NUMBER
        The name of the attribute that may contain the change number for the last entry in the LDAP changelog, if available. This is not defined in any public specification, but is provided by a number of servers which implement draft-good-ldap-changelog.
        See Also:
        Constant Field Values
      • ATTR_LAST_PURGED_CHANGE_NUMBER

        public static final java.lang.String ATTR_LAST_PURGED_CHANGE_NUMBER
        The name of the attribute that may contain the change number for the last entry purged from the LDAP changelog, if available. This is not defined in any public specification, but is provided by a number of servers which implement draft-good-ldap-changelog.
        See Also:
        Constant Field Values
      • ATTR_NAMING_CONTEXT

        public static final java.lang.String ATTR_NAMING_CONTEXT
        The name of the attribute that includes the DNs of the public naming contexts defined in the server, as defined in RFC 4512 section 5.1.
        See Also:
        Constant Field Values
      • ATTR_SUBSCHEMA_SUBENTRY

        public static final java.lang.String ATTR_SUBSCHEMA_SUBENTRY
        The name of the attribute that specifies the DN of the subschema subentry that serves the server root DSE, as defined in RFC 4512 section 4.2.
        See Also:
        Constant Field Values
      • ATTR_SUPPORTED_CONTROL

        public static final java.lang.String ATTR_SUPPORTED_CONTROL
        The name of the attribute that includes the OIDs of the request controls supported by the server, as defined in RFC 4512 section 5.1.
        See Also:
        Constant Field Values
      • ATTR_SUPPORTED_EXTENDED_OPERATION

        public static final java.lang.String ATTR_SUPPORTED_EXTENDED_OPERATION
        The name of the attribute that includes the OIDs of the extended operations supported by the server, as defined in RFC 4512 section 5.1.
        See Also:
        Constant Field Values
      • ATTR_SUPPORTED_FEATURE

        public static final java.lang.String ATTR_SUPPORTED_FEATURE
        The name of the attribute that includes the OIDs of the features supported by the server, as defined in RFC 4512 section 5.1.
        See Also:
        Constant Field Values
      • ATTR_SUPPORTED_LDAP_VERSION

        public static final java.lang.String ATTR_SUPPORTED_LDAP_VERSION
        The name of the attribute that includes the OIDs of the LDAP protocol versions supported by the server, as defined in RFC 4512 section 5.1.
        See Also:
        Constant Field Values
      • ATTR_SUPPORTED_SASL_MECHANISM

        public static final java.lang.String ATTR_SUPPORTED_SASL_MECHANISM
        The name of the attribute that includes the names of the SASL mechanisms supported by the server, as defined in RFC 4512 section 5.1.
        See Also:
        Constant Field Values
      • ATTR_VENDOR_NAME

        public static final java.lang.String ATTR_VENDOR_NAME
        The name of the attribute that includes the name of the server vendor, as defined in RFC 3045.
        See Also:
        Constant Field Values
      • REQUEST_ATTRS

        protected static final java.lang.String[] REQUEST_ATTRS
        The set of request attributes to use when attempting to retrieve the server root DSE. It will attempt to retrieve all operational attributes if the server supports that capability, but will also attempt to retrieve specific attributes by name in case it does not.
    • Constructor Detail

      • RootDSE

        public RootDSE​(Entry rootDSEEntry)
        Creates a new root DSE object from the information in the provided entry.
        Parameters:
        rootDSEEntry - The entry to use to create this root DSE object. It must not be null.
    • Method Detail

      • getRootDSE

        public static RootDSE getRootDSE​(LDAPInterface connection)
                                  throws LDAPException
        Retrieves the directory server root DSE using the provided connection.
        Parameters:
        connection - The connection to use to retrieve the server root DSE.
        Returns:
        The directory server root DSE, or null if it is not available (e.g., the client does not have permission to read the entry).
        Throws:
        LDAPException - If a problem occurs while attempting to retrieve the server root DSE.
      • getAltServerURIs

        public final java.lang.String[] getAltServerURIs()
        Retrieves a set of URIs for alternate servers that may be contacted if the current server becomes unavailable.
        Returns:
        A set of URIs for alternate servers that may be contacted if the current server becomes available, or null if the server does not publish that information.
      • getChangelogDN

        public final java.lang.String getChangelogDN()
        Retrieves the DN of the base entry for the directory server changelog information, if available.
        Returns:
        The DN of the base entry for the directory server changelog information, or null if the server does not publish that information or no changelog is available.
      • getFirstChangeNumber

        public final java.lang.Long getFirstChangeNumber()
        Retrieves the change number for the first entry contained in the LDAP changelog, if available.
        Returns:
        The change number for the first entry contained in the LDAP changelog, if available.
      • getLastChangeNumber

        public final java.lang.Long getLastChangeNumber()
        Retrieves the change number for the last entry contained in the LDAP changelog, if available.
        Returns:
        The change number for the last entry contained in the LDAP changelog, if available.
      • getLastPurgedChangeNumber

        public final java.lang.Long getLastPurgedChangeNumber()
        Retrieves the change number for the last entry purged from the LDAP changelog, if available.
        Returns:
        The change number for the last entry purged from the LDAP changelog, if available.
      • getNamingContextDNs

        public final java.lang.String[] getNamingContextDNs()
        Retrieves the DNs of the naming contexts provided by the directory server.
        Returns:
        The DNs of the naming contexts provided by the directory server, or null if the server does not publish that information.
      • getSubschemaSubentryDN

        public final java.lang.String getSubschemaSubentryDN()
        Retrieves the DN of the subschema subentry that serves the directory server root DSE.
        Returns:
        The DN of the subschema subentry that serves the directory server root DSE, or null if the server does not publish that information.
      • getSupportedAuthPasswordSchemeNames

        public final java.lang.String[] getSupportedAuthPasswordSchemeNames()
        Retrieves the names of the authentication password storage schemes supported by the server.
        Returns:
        The names of the authentication password storage schemes supported by the server, or null if the server does not publish that information.
      • supportsAuthPasswordScheme

        public final boolean supportsAuthPasswordScheme​(java.lang.String scheme)
        Indicates whether the directory server indicates that it supports the specified authentication password storage scheme.
        Parameters:
        scheme - The name of the authentication password storage scheme for which to make the determination. It must not be null.
        Returns:
        true if the directory server indicates that it supports the specified authentication password storage scheme, or false if it does not.
      • getSupportedControlOIDs

        public final java.lang.String[] getSupportedControlOIDs()
        Retrieves the OIDs of the supported request controls advertised by the server root DSE.
        Returns:
        The OIDs of the supported request controls advertised by the server root DSE, or null if the server does not publish that information.
      • supportsControl

        public final boolean supportsControl​(java.lang.String controlOID)
        Indicates whether the directory server indicates that it supports the request control with the provided OID.
        Parameters:
        controlOID - The OID of the control for which to make the determination. It must not be null.
        Returns:
        true if the server indicates that it supports the request control with the specified OID, or false if it does not.
      • getSupportedExtendedOperationOIDs

        public final java.lang.String[] getSupportedExtendedOperationOIDs()
        Retrieves the OIDs of the supported extended operations advertised by the server root DSE.
        Returns:
        The OIDs of the supported extended operations advertised by the server root DSE, or null if the server does not publish that information.
      • supportsExtendedOperation

        public final boolean supportsExtendedOperation​(java.lang.String extendedOperationOID)
        Indicates whether the directory server indicates that it supports the extended operation with the provided OID.
        Parameters:
        extendedOperationOID - The OID of the extended operation for which to make the determination. It must not be null.
        Returns:
        true if the server indicates that it supports the extended operation with the specified OID, or false if it does not.
      • getSupportedFeatureOIDs

        public final java.lang.String[] getSupportedFeatureOIDs()
        Retrieves the OIDs of the supported features advertised by the server root DSE.
        Returns:
        The OIDs of the supported features advertised by the server root DSE, or null if the server does not publish that information.
      • supportsFeature

        public final boolean supportsFeature​(java.lang.String featureOID)
        Indicates whether the directory server indicates that it supports the extended operation with the provided OID.
        Parameters:
        featureOID - The OID of the feature for which to make the determination. It must not be null.
        Returns:
        true if the server indicates that it supports the feature with the specified OID, or false if it does not.
      • getSupportedLDAPVersions

        public final int[] getSupportedLDAPVersions()
        Retrieves the supported LDAP protocol versions advertised by the server root DSE.
        Returns:
        The supported LDAP protocol versions advertised by the server root DSE, or null if the server does not publish that information.
      • supportsLDAPVersion

        public final boolean supportsLDAPVersion​(int ldapVersion)
        Indicates whether the directory server indicates that it supports the provided LDAP protocol version.
        Parameters:
        ldapVersion - The LDAP protocol version for which to make the determination.
        Returns:
        true if the server indicates that it supports the specified LDAP protocol version, or false if it does not.
      • getSupportedSASLMechanismNames

        public final java.lang.String[] getSupportedSASLMechanismNames()
        Retrieves the names of the supported SASL mechanisms advertised by the server root DSE.
        Returns:
        The names of the supported SASL mechanisms advertised by the server root DSE, or null if the server does not publish that information.
      • supportsSASLMechanism

        public final boolean supportsSASLMechanism​(java.lang.String mechanismName)
        Indicates whether the directory server indicates that it supports the specified SASL mechanism.
        Parameters:
        mechanismName - The name of the SASL mechanism for which to make the determination. It must not be null.
        Returns:
        true if the server indicates that it supports the specified SASL mechanism, or false if it does not.
      • getVendorName

        public final java.lang.String getVendorName()
        Retrieves the name of the directory server vendor, if available.
        Returns:
        The name of the directory server vendor, or null if the server does not publish that information.
      • getVendorVersion

        public final java.lang.String getVendorVersion()
        Retrieves the directory server version string, if available.
        Returns:
        The directory server version string, or null if the server does not publish that information.