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

        @NotNull
        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

        @NotNull
        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

        @NotNull
        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

        @NotNull
        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

        @NotNull
        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

        @NotNull
        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

        @NotNull
        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

        @NotNull
        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
      • REQUEST_ATTRS

        @NotNull
        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​(@NotNull
                       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

        @Nullable
        public static RootDSE getRootDSE​(@NotNull
                                         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

        @Nullable
        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

        @Nullable
        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

        @Nullable
        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

        @Nullable
        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

        @Nullable
        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

        @Nullable
        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

        @Nullable
        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

        @Nullable
        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​(@NotNull
                                                        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

        @Nullable
        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​(@NotNull
                                             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

        @Nullable
        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​(@NotNull
                                                       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

        @Nullable
        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​(@NotNull
                                             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

        @Nullable
        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

        @Nullable
        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​(@NotNull
                                                   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

        @Nullable
        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

        @Nullable
        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.