Class SyncopeClient


  • public class SyncopeClient
    extends Object
    Entry point for client access to all REST services exposed by Syncope core; obtain instances via SyncopeClientFactoryBean.
    • Constructor Summary

      Constructors 
      Constructor Description
      SyncopeClient​(javax.ws.rs.core.MediaType mediaType, org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean restClientFactory, RestClientExceptionMapper exceptionMapper, AuthenticationHandler handler, boolean useCompression, org.apache.cxf.configuration.jsse.TLSClientParameters tlsClientParameters)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      BatchRequest batch()
      Initiates a new Batch request.
      protected void cleanup()  
      SyncopeClient delegatedBy​(String delegating)
      Requests to invoke services as delegating user.
      String getAddress()
      Gives the base address for REST calls.
      static org.apache.syncope.common.lib.search.AnyObjectFiqlSearchConditionBuilder getAnyObjectSearchConditionBuilder​(String type)
      Returns a new instance of AnyObjectFiqlSearchConditionBuilder, for assisted building of FIQL queries.
      static org.apache.syncope.common.lib.search.ConnObjectTOFiqlSearchConditionBuilder getConnObjectTOFiqlSearchConditionBuilder()
      Returns a new instance of ConnObjectTOFiqlSearchConditionBuilder, for assisted building of FIQL queries.
      String getDomain()
      Returns the domain configured for this instance, or SyncopeConstants.MASTER_DOMAIN if not set.
      static org.apache.syncope.common.lib.search.GroupFiqlSearchConditionBuilder getGroupSearchConditionBuilder()
      Returns a new instance of GroupFiqlSearchConditionBuilder, for assisted building of FIQL queries.
      String getJWT()
      Returns the JWT in used by this instance, passed with the HttpHeaders.AUTHORIZATION header in all requests.
      static <T> javax.ws.rs.core.EntityTag getLatestEntityTag​(T service)
      Fetches ETag header value from latest service run (if available).
      static org.apache.syncope.common.lib.search.OrderByClauseBuilder getOrderByClauseBuilder()
      Returns a new instance of OrderByClauseBuilder, for assisted building of orderby clauses.
      <T> T getService​(Class<T> serviceClass)
      Creates an instance of the given service class, with configured content type and authentication.
      static org.apache.syncope.common.lib.search.UserFiqlSearchConditionBuilder getUserSearchConditionBuilder()
      Returns a new instance of UserFiqlSearchConditionBuilder, for assisted building of FIQL queries.
      org.apache.commons.lang3.tuple.Pair<String,​String> gitAndBuildInfo()  
      static <T> T header​(T service, String key, Object... values)
      Sets the given header on the give service instance.
      static <T> T ifMatch​(T service, javax.ws.rs.core.EntityTag etag)
      Sets the If-Match header on the given service instance.
      static <T> T ifNoneMatch​(T service, javax.ws.rs.core.EntityTag etag)
      Sets the If-None-Match header on the given service instance.
      protected com.fasterxml.jackson.databind.JsonNode info()  
      protected void init​(AuthenticationHandler handler)
      Initializes the provided restClientFactory with the authentication capabilities of the provided handler.
      void login​(AuthenticationHandler handler)
      (Re)initializes the current instance with the authentication capabilities of the provided handler.
      void logout()
      Invalidates the JWT currently in use.
      protected static <T> T match​(T service, javax.ws.rs.core.EntityTag etag, boolean ifNot)
      Sets the If-Match or If-None-Match header on the given service instance.
      static <T> T nullPriorityAsync​(T service, boolean nullPriorityAsync)
      Asks for asynchronous propagation towards external resources with null priority.
      org.apache.syncope.common.lib.info.NumbersInfo numbers()  
      org.apache.syncope.common.lib.info.PlatformInfo platform()  
      static <T> T prefer​(T service, Preference preference)
      Sets the Prefer header on the give service instance.
      void refresh()
      Attempts to extend the lifespan of the JWT currently in use.
      org.apache.commons.lang3.tuple.Triple<Map<String,​Set<String>>,​List<String>,​org.apache.syncope.common.lib.to.UserTO> self()  
      org.apache.syncope.common.lib.info.SystemInfo system()  
    • Field Detail

      • LOG

        protected static final org.slf4j.Logger LOG
      • MAPPER

        protected static final com.fasterxml.jackson.databind.json.JsonMapper MAPPER
      • mediaType

        protected final javax.ws.rs.core.MediaType mediaType
      • restClientFactory

        protected final org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean restClientFactory
      • useCompression

        protected final boolean useCompression
      • tlsClientParameters

        protected final org.apache.cxf.configuration.jsse.TLSClientParameters tlsClientParameters
    • Constructor Detail

      • SyncopeClient

        public SyncopeClient​(javax.ws.rs.core.MediaType mediaType,
                             org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean restClientFactory,
                             RestClientExceptionMapper exceptionMapper,
                             AuthenticationHandler handler,
                             boolean useCompression,
                             org.apache.cxf.configuration.jsse.TLSClientParameters tlsClientParameters)
    • Method Detail

      • cleanup

        protected void cleanup()
      • gitAndBuildInfo

        public org.apache.commons.lang3.tuple.Pair<String,​String> gitAndBuildInfo()
      • platform

        public org.apache.syncope.common.lib.info.PlatformInfo platform()
      • system

        public org.apache.syncope.common.lib.info.SystemInfo system()
      • numbers

        public org.apache.syncope.common.lib.info.NumbersInfo numbers()
      • getAddress

        public String getAddress()
        Gives the base address for REST calls.
        Returns:
        the base address for REST calls
      • delegatedBy

        public SyncopeClient delegatedBy​(String delegating)
        Requests to invoke services as delegating user.
        Parameters:
        delegating - delegating username
        Returns:
        this instance, for fluent usage
      • refresh

        public void refresh()
        Attempts to extend the lifespan of the JWT currently in use.
      • logout

        public void logout()
        Invalidates the JWT currently in use.
      • login

        public void login​(AuthenticationHandler handler)
        (Re)initializes the current instance with the authentication capabilities of the provided handler.
        Parameters:
        handler - authentication handler
      • getUserSearchConditionBuilder

        public static org.apache.syncope.common.lib.search.UserFiqlSearchConditionBuilder getUserSearchConditionBuilder()
        Returns a new instance of UserFiqlSearchConditionBuilder, for assisted building of FIQL queries.
        Returns:
        default instance of UserFiqlSearchConditionBuilder
      • getGroupSearchConditionBuilder

        public static org.apache.syncope.common.lib.search.GroupFiqlSearchConditionBuilder getGroupSearchConditionBuilder()
        Returns a new instance of GroupFiqlSearchConditionBuilder, for assisted building of FIQL queries.
        Returns:
        default instance of GroupFiqlSearchConditionBuilder
      • getAnyObjectSearchConditionBuilder

        public static org.apache.syncope.common.lib.search.AnyObjectFiqlSearchConditionBuilder getAnyObjectSearchConditionBuilder​(String type)
        Returns a new instance of AnyObjectFiqlSearchConditionBuilder, for assisted building of FIQL queries.
        Parameters:
        type - any type
        Returns:
        default instance of AnyObjectFiqlSearchConditionBuilder
      • getConnObjectTOFiqlSearchConditionBuilder

        public static org.apache.syncope.common.lib.search.ConnObjectTOFiqlSearchConditionBuilder getConnObjectTOFiqlSearchConditionBuilder()
        Returns a new instance of ConnObjectTOFiqlSearchConditionBuilder, for assisted building of FIQL queries.
        Returns:
        default instance of ConnObjectTOFiqlSearchConditionBuilder
      • getOrderByClauseBuilder

        public static org.apache.syncope.common.lib.search.OrderByClauseBuilder getOrderByClauseBuilder()
        Returns a new instance of OrderByClauseBuilder, for assisted building of orderby clauses.
        Returns:
        default instance of OrderByClauseBuilder
      • getDomain

        public String getDomain()
        Returns the domain configured for this instance, or SyncopeConstants.MASTER_DOMAIN if not set.
        Returns:
        the domain configured for this instance
      • getService

        public <T> T getService​(Class<T> serviceClass)
        Creates an instance of the given service class, with configured content type and authentication.
        Type Parameters:
        T - any service class
        Parameters:
        serviceClass - service class reference
        Returns:
        service instance of the given reference class
      • self

        public org.apache.commons.lang3.tuple.Triple<Map<String,​Set<String>>,​List<String>,​org.apache.syncope.common.lib.to.UserTO> self()
      • header

        public static <T> T header​(T service,
                                   String key,
                                   Object... values)
        Sets the given header on the give service instance.
        Type Parameters:
        T - any service class
        Parameters:
        service - service class instance
        key - HTTP header key
        values - HTTP header values
        Returns:
        given service instance, with given header set
      • prefer

        public static <T> T prefer​(T service,
                                   Preference preference)
        Sets the Prefer header on the give service instance.
        Type Parameters:
        T - any service class
        Parameters:
        service - service class instance
        preference - preference to be set via Prefer header
        Returns:
        given service instance, with Prefer header set
      • nullPriorityAsync

        public static <T> T nullPriorityAsync​(T service,
                                              boolean nullPriorityAsync)
        Asks for asynchronous propagation towards external resources with null priority.
        Type Parameters:
        T - any service class
        Parameters:
        service - service class instance
        nullPriorityAsync - whether asynchronous propagation towards external resources with null priority is requested
        Returns:
        service instance of the given reference class, with related header set
      • match

        protected static <T> T match​(T service,
                                     javax.ws.rs.core.EntityTag etag,
                                     boolean ifNot)
        Sets the If-Match or If-None-Match header on the given service instance.
        Type Parameters:
        T - any service class
        Parameters:
        service - service class instance
        etag - ETag value
        ifNot - if true then If-None-Match is set, If-Match otherwise
        Returns:
        given service instance, with If-Match or If-None-Match set
      • ifMatch

        public static <T> T ifMatch​(T service,
                                    javax.ws.rs.core.EntityTag etag)
        Sets the If-Match header on the given service instance.
        Type Parameters:
        T - any service class
        Parameters:
        service - service class instance
        etag - ETag value
        Returns:
        given service instance, with If-Match set
      • ifNoneMatch

        public static <T> T ifNoneMatch​(T service,
                                        javax.ws.rs.core.EntityTag etag)
        Sets the If-None-Match header on the given service instance.
        Type Parameters:
        T - any service class
        Parameters:
        service - service class instance
        etag - ETag value
        Returns:
        given service instance, with If-None-Match set
      • getLatestEntityTag

        public static <T> javax.ws.rs.core.EntityTag getLatestEntityTag​(T service)
        Fetches ETag header value from latest service run (if available).
        Type Parameters:
        T - any service class
        Parameters:
        service - service class instance
        Returns:
        ETag header value from latest service run (if available)
      • batch

        public BatchRequest batch()
        Initiates a new Batch request. The typical operation flow is:
         BatchRequest batchRequest = syncopeClient.batch();
         batchRequest.getService(UserService.class).create(...);
         batchRequest.getService(UserService.class).update(...);
         batchRequest.getService(GroupService.class).update(...);
         batchRequest.getService(GroupService.class).delete(...);
         ...
         BatchResponse batchResponse = batchRequest().commit();
         List<BatchResponseItem> items = batchResponse.getItems()
         
        Returns:
        empty Batch request