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 viaSCIMServerContext
, 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 Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description LDAPResult
add(javax.servlet.http.HttpServletRequest httpServletRequest, AddRequest addRequest)
Processes the provided LDAP add request.CompareResult
compare(javax.servlet.http.HttpServletRequest httpServletRequest, CompareRequest compareRequest)
Processes the provided LDAP compare request.LDAPResult
delete(javax.servlet.http.HttpServletRequest httpServletRequest, DeleteRequest deleteRequest)
Processes the provided LDAP delete request.java.lang.String
getBaseDN()
Gets the LDAP base DN associated with the SCIM service.RootDSE
getRootDSE(javax.servlet.http.HttpServletRequest httpServletRequest)
Retrieves the LDAP server's root DSE.Schema
getSchema()
Gets the LDAP server's schema.java.util.Set<java.lang.String>
getSupportedControls()
Gets the controls supported by the LDAP server.LDAPResult
modify(javax.servlet.http.HttpServletRequest httpServletRequest, ModifyRequest modifyRequest)
Processes the provided LDAP modify request.LDAPResult
modifyDN(javax.servlet.http.HttpServletRequest httpServletRequest, ModifyDNRequest modifyDNRequest)
Processes the provided LDAP modify DN request.ExtendedResult
processExtendedRequest(javax.servlet.http.HttpServletRequest httpServletRequest, ExtendedRequest extendedRequest)
Processes the provided extended request.SearchResult
search(javax.servlet.http.HttpServletRequest httpServletRequest, SearchRequest searchRequest)
Processes the provided LDAP search request.SearchResultEntry
searchForEntry(javax.servlet.http.HttpServletRequest httpServletRequest, SearchRequest searchRequest)
Processes the provided LDAP search request.
-
-
-
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 benull
.- 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 benull
.- 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 benull
.- 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 benull
.- 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 benull
.- 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 aScimException
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, theLDAPSearchException
methods likegetEntryCount
,getSearchEntries
,getReferenceCount
, andgetSearchReferences
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 thegetSearchEntries
andgetSearchReferences
methods).- Parameters:
httpServletRequest
- The HTTP servlet request associated with the current operation.searchRequest
- The search request to be processed. It must not benull
.- 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 wrappedLDAPSearchException
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 aScimException
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, theLDAPSearchException
methods likegetEntryCount
,getSearchEntries
,getReferenceCount
, andgetSearchReferences
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 wrappedLDAPSearchException
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 benull
.- 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.
-
-