Interface SCIMLDAPInterface


  • @NotExtensible
    public interface SCIMLDAPInterface
    This interface defines a set of helper methods for SCIM 2-related extensions that interact with SCIM resources and sub-resources backed by an LDAP server. Concrete instances of this interface may be obtained via SCIMServerContext, and are always associated with a particular SCIM resource type.

    For PingAuthorize Server, the associated SCIM resource type must use an LDAP store adapter as its primary store adapter, and the LDAP store adapter must be backed by a Ping Identity Directory Server or Directory Proxy Server.

    • Method Detail

      • getBaseDN

        java.lang.String getBaseDN()
        Gets the LDAP base DN associated with the SCIM service. If the product is PingAuthorize Server, this will be the base DN for the SCIM resource type's primary store adapter.
        Returns:
        The base DN.
      • getSchema

        @Nullable
        Schema getSchema()
                  throws com.unboundid.scim2.common.exceptions.ScimException
        Gets the LDAP server's schema.
        Returns:
        The LDAP schema.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - If the schema cannot be obtained.
      • getSupportedControls

        java.util.Set<java.lang.String> getSupportedControls()
                                                      throws com.unboundid.scim2.common.exceptions.ScimException
        Gets the controls supported by the LDAP server.
        Returns:
        The controls supported by the LDAP server as a set of OID values.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - If the supported LDAP controls cannot be obtained.
      • getRootDSE

        @Nullable
        RootDSE getRootDSE​(@NotNull
                           javax.servlet.http.HttpServletRequest httpServletRequest)
                    throws com.unboundid.scim2.common.exceptions.ScimException
        Retrieves the LDAP server's root DSE.
        Parameters:
        httpServletRequest - The HTTP servlet request associated with the current operation.
        Returns:
        The LDAP server's root DSE, or null if it is not available.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - If a problem occurs while attempting to retrieve the server root DSE.
      • add

        @NotNull
        LDAPResult add​(@NotNull
                       javax.servlet.http.HttpServletRequest httpServletRequest,
                       @NotNull
                       AddRequest addRequest)
                throws com.unboundid.scim2.common.exceptions.ScimException
        Processes the provided LDAP add request.
        Parameters:
        httpServletRequest - The HTTP servlet request associated with the current operation.
        addRequest - The add request to be processed. It must not be null.
        Returns:
        The result of processing the add operation.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - If a connection cannot be obtained, if the server rejects the add request, or if a problem is encountered while sending the request or reading the response.
      • compare

        @NotNull
        CompareResult compare​(@NotNull
                              javax.servlet.http.HttpServletRequest httpServletRequest,
                              @NotNull
                              CompareRequest compareRequest)
                       throws com.unboundid.scim2.common.exceptions.ScimException
        Processes the provided LDAP compare request.
        Parameters:
        httpServletRequest - The HTTP servlet request associated with the current operation.
        compareRequest - The compare request to be processed. It must not be null.
        Returns:
        The result of processing the compare operation.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - If a connection cannot be obtained, if the server rejects the compare request, or if a problem is encountered while sending the request or reading the response.
      • delete

        @NotNull
        LDAPResult delete​(@NotNull
                          javax.servlet.http.HttpServletRequest httpServletRequest,
                          @NotNull
                          DeleteRequest deleteRequest)
                   throws com.unboundid.scim2.common.exceptions.ScimException
        Processes the provided LDAP delete request.
        Parameters:
        httpServletRequest - The HTTP servlet request associated with the current operation.
        deleteRequest - The delete request to be processed. It must not be null.
        Returns:
        The result of processing the delete operation.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - If a connection cannot be obtained, if the server rejects the delete request, or if a problem is encountered while sending the request or reading the response.
      • modify

        @NotNull
        LDAPResult modify​(@NotNull
                          javax.servlet.http.HttpServletRequest httpServletRequest,
                          @NotNull
                          ModifyRequest modifyRequest)
                   throws com.unboundid.scim2.common.exceptions.ScimException
        Processes the provided LDAP modify request.
        Parameters:
        httpServletRequest - The HTTP servlet request associated with the current operation.
        modifyRequest - The modify request to be processed. It must not be null.
        Returns:
        The result of processing the modify operation.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - If a connection cannot be obtained, if the server rejects the modify request, or if a problem is encountered while sending the request or reading the response.
      • modifyDN

        @NotNull
        LDAPResult modifyDN​(@NotNull
                            javax.servlet.http.HttpServletRequest httpServletRequest,
                            @NotNull
                            ModifyDNRequest modifyDNRequest)
                     throws com.unboundid.scim2.common.exceptions.ScimException
        Processes the provided LDAP modify DN request.
        Parameters:
        httpServletRequest - The HTTP servlet request associated with the current operation.
        modifyDNRequest - The modify DN request to be processed. It must not be null.
        Returns:
        The result of processing the modify DN operation.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - If a connection cannot be obtained, if the server rejects the modify DN request, or if a problem is encountered while sending the request or reading the response.
      • search

        @NotNull
        SearchResult search​(@NotNull
                            javax.servlet.http.HttpServletRequest httpServletRequest,
                            @NotNull
                            SearchRequest searchRequest)
                     throws com.unboundid.scim2.common.exceptions.ScimException
        Processes the provided LDAP search request.

        Note that if the search does not complete successfully, an LDAPSearchException wrapped by a ScimException will be thrown. In some cases, one or more search result entries or references may have been returned before the failure response is received. In this case, the LDAPSearchException methods like getEntryCount, getSearchEntries, getReferenceCount, and getSearchReferences may be used to obtain information about those entries and references (although if a search result listener was provided, then it will have been used to make any entries and references available, and they will not be available through the getSearchEntries and getSearchReferences methods).

        Parameters:
        httpServletRequest - The HTTP servlet request associated with the current operation.
        searchRequest - The search request to be processed. It must not be null.
        Returns:
        A search result object that provides information about the processing of the search, potentially including the set of matching entries and search references returned by the server.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - If a connection cannot be obtained, if the search does not complete successfully, or if a problem is encountered while sending the request or reading the response. If one or more entries or references were returned before the failure was encountered, then the wrapped LDAPSearchException object may be examined to obtain information about those entries and/or references.
      • searchForEntry

        @Nullable
        SearchResultEntry searchForEntry​(@NotNull
                                         javax.servlet.http.HttpServletRequest httpServletRequest,
                                         @NotNull
                                         SearchRequest searchRequest)
                                  throws com.unboundid.scim2.common.exceptions.ScimException
        Processes the provided LDAP search request. It is expected that at most one entry will be returned from the search, and that no additional content from the successful search result (e.g., diagnostic message or response controls) are needed.

        Note that if the search does not complete successfully, an LDAPSearchException wrapped by a ScimException will be thrown. In some cases, one or more search result entries or references may have been returned before the failure response is received. In this case, the LDAPSearchException methods like getEntryCount, getSearchEntries, getReferenceCount, and getSearchReferences may be used to obtain information about those entries and references.

        Parameters:
        httpServletRequest - The HTTP servlet request associated with the current operation.
        searchRequest - The search request to be processed. If it is configured with a search result listener or a size limit other than one, then the provided request will be duplicated with the appropriate settings.
        Returns:
        The entry that was returned from the search, or null if no entry was returned or the base entry does not exist.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - If a connection cannot be obtained, if the search does not complete successfully, if more than a single entry is returned, or if a problem is encountered while parsing the provided filter string, sending the request, or reading the response. If one or more entries or references were returned before the failure was encountered, then the wrapped LDAPSearchException object may be examined to obtain information about those entries and/or references.
      • processExtendedRequest

        @NotNull
        ExtendedResult processExtendedRequest​(@NotNull
                                              javax.servlet.http.HttpServletRequest httpServletRequest,
                                              @NotNull
                                              ExtendedRequest extendedRequest)
                                       throws com.unboundid.scim2.common.exceptions.ScimException
        Processes the provided extended request. Note that when processing an extended operation, the server will never throw an exception for a failed response -- only when there is a problem sending the request or reading the response. It is the responsibility of the caller to determine whether the operation was successful.

        Note that some extended request types, such as the StartTLS extended request, may change the state of the underlying connection and should not be invoked through this interface.

        Parameters:
        httpServletRequest - The HTTP servlet request associated with the current operation.
        extendedRequest - The extended request to be processed. It must not be null.
        Returns:
        The extended result object that provides information about the result of the request processing. It may or may not indicate that the operation was successful.
        Throws:
        com.unboundid.scim2.common.exceptions.ScimException - If a problem occurs while sending the request or reading the response.