Package org.apache.syncope.client.lib
Class SyncopeClient
- java.lang.Object
-
- org.apache.syncope.client.lib.SyncopeClient
-
- Direct Known Subclasses:
SyncopeAnonymousClient
public class SyncopeClient extends Object
Entry point for client access to all REST services exposed by Syncope core; obtain instances viaSyncopeClientFactoryBean
.
-
-
Field Summary
Fields Modifier and Type Field Description protected RestClientExceptionMapper
exceptionMapper
protected static String
HEADER_SPLIT_PROPERTY
protected org.apache.cxf.transports.http.configuration.HTTPClientPolicy
httpClientPolicy
protected static Logger
LOG
protected static JsonMapper
MAPPER
protected javax.ws.rs.core.MediaType
mediaType
protected org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean
restClientFactory
protected TLSClientParameters
tlsClientParameters
protected boolean
useCompression
-
Constructor Summary
Constructors Constructor Description SyncopeClient(javax.ws.rs.core.MediaType mediaType, org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean restClientFactory, RestClientExceptionMapper exceptionMapper, AuthenticationHandler authHandler, boolean useCompression, org.apache.cxf.transports.http.configuration.HTTPClientPolicy httpClientPolicy, 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 AnyObjectFiqlSearchConditionBuilder
getAnyObjectSearchConditionBuilder(String type)
Returns a new instance ofAnyObjectFiqlSearchConditionBuilder
, for assisted building of FIQL queries.static ConnObjectTOFiqlSearchConditionBuilder
getConnObjectTOFiqlSearchConditionBuilder()
Returns a new instance ofConnObjectTOFiqlSearchConditionBuilder
, for assisted building of FIQL queries.String
getDomain()
Returns the domain configured for this instance, orSyncopeConstants.MASTER_DOMAIN
if not set.static GroupFiqlSearchConditionBuilder
getGroupSearchConditionBuilder()
Returns a new instance ofGroupFiqlSearchConditionBuilder
, for assisted building of FIQL queries.String
getJWT()
Returns the JWT in used by this instance, passed with theHttpHeaders.AUTHORIZATION
header in all requests.static <T> javax.ws.rs.core.EntityTag
getLatestEntityTag(T service)
FetchesETag
header value from latest service run (if available).static OrderByClauseBuilder
getOrderByClauseBuilder()
Returns a new instance ofOrderByClauseBuilder
, for assisted building oforderby
clauses.<T> T
getService(Class<T> serviceClass)
Creates an instance of the given service class, with configured content type and authentication.static UserFiqlSearchConditionBuilder
getUserSearchConditionBuilder()
Returns a new instance ofUserFiqlSearchConditionBuilder
, for assisted building of FIQL queries.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 theIf-Match
header on the given service instance.static <T> T
ifNoneMatch(T service, javax.ws.rs.core.EntityTag etag)
Sets theIf-None-Match
header on the given service instance.protected void
init(AuthenticationHandler authHandler)
Initializes the providedrestClientFactory
with the authentication capabilities of the providedhandler
.void
login(AuthenticationHandler handler)
(Re)initializes the current instance with the authentication capabilities of the providedhandler
.void
logout()
Invalidates the JWT currently in use.protected static <T> T
match(T service, javax.ws.rs.core.EntityTag etag, boolean ifNot)
Sets theIf-Match
orIf-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.static <T> T
prefer(T service, Preference preference)
Sets thePrefer
header on the give service instance.void
refresh()
Attempts to extend the lifespan of the JWT currently in use.Triple<Map<String,Set<String>>,List<String>,UserTO>
self()
-
-
-
Field Detail
-
LOG
protected static final Logger LOG
-
HEADER_SPLIT_PROPERTY
protected static final String HEADER_SPLIT_PROPERTY
- See Also:
- Constant Field Values
-
MAPPER
protected static final JsonMapper MAPPER
-
mediaType
protected final javax.ws.rs.core.MediaType mediaType
-
restClientFactory
protected final org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean restClientFactory
-
exceptionMapper
protected final RestClientExceptionMapper exceptionMapper
-
useCompression
protected final boolean useCompression
-
httpClientPolicy
protected final org.apache.cxf.transports.http.configuration.HTTPClientPolicy httpClientPolicy
-
tlsClientParameters
protected final TLSClientParameters tlsClientParameters
-
-
Constructor Detail
-
SyncopeClient
public SyncopeClient(javax.ws.rs.core.MediaType mediaType, org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean restClientFactory, RestClientExceptionMapper exceptionMapper, AuthenticationHandler authHandler, boolean useCompression, org.apache.cxf.transports.http.configuration.HTTPClientPolicy httpClientPolicy, TLSClientParameters tlsClientParameters)
-
-
Method Detail
-
init
protected void init(AuthenticationHandler authHandler)
Initializes the providedrestClientFactory
with the authentication capabilities of the providedhandler
. Currently supports: More can be supported by subclasses.- Parameters:
authHandler
- authentication handler
-
cleanup
protected void cleanup()
-
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 providedhandler
.- Parameters:
handler
- authentication handler
-
getUserSearchConditionBuilder
public static UserFiqlSearchConditionBuilder getUserSearchConditionBuilder()
Returns a new instance ofUserFiqlSearchConditionBuilder
, for assisted building of FIQL queries.- Returns:
- default instance of
UserFiqlSearchConditionBuilder
-
getGroupSearchConditionBuilder
public static GroupFiqlSearchConditionBuilder getGroupSearchConditionBuilder()
Returns a new instance ofGroupFiqlSearchConditionBuilder
, for assisted building of FIQL queries.- Returns:
- default instance of
GroupFiqlSearchConditionBuilder
-
getAnyObjectSearchConditionBuilder
public static AnyObjectFiqlSearchConditionBuilder getAnyObjectSearchConditionBuilder(String type)
Returns a new instance ofAnyObjectFiqlSearchConditionBuilder
, for assisted building of FIQL queries.- Parameters:
type
- any type- Returns:
- default instance of
AnyObjectFiqlSearchConditionBuilder
-
getConnObjectTOFiqlSearchConditionBuilder
public static ConnObjectTOFiqlSearchConditionBuilder getConnObjectTOFiqlSearchConditionBuilder()
Returns a new instance ofConnObjectTOFiqlSearchConditionBuilder
, for assisted building of FIQL queries.- Returns:
- default instance of
ConnObjectTOFiqlSearchConditionBuilder
-
getOrderByClauseBuilder
public static OrderByClauseBuilder getOrderByClauseBuilder()
Returns a new instance ofOrderByClauseBuilder
, for assisted building oforderby
clauses.- Returns:
- default instance of
OrderByClauseBuilder
-
getJWT
public String getJWT()
Returns the JWT in used by this instance, passed with theHttpHeaders.AUTHORIZATION
header in all requests. It can be null (in caseAnonymousAuthenticationHandler
was used).- Returns:
- the JWT in used by this instance
-
getDomain
public String getDomain()
Returns the domain configured for this instance, orSyncopeConstants.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
-
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 instancekey
- HTTP header keyvalues
- HTTP header values- Returns:
- given service instance, with given header set
-
prefer
public static <T> T prefer(T service, Preference preference)
Sets thePrefer
header on the give service instance.- Type Parameters:
T
- any service class- Parameters:
service
- service class instancepreference
- preference to be set viaPrefer
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 instancenullPriorityAsync
- 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 theIf-Match
orIf-None-Match
header on the given service instance.- Type Parameters:
T
- any service class- Parameters:
service
- service class instanceetag
- ETag valueifNot
- if true thenIf-None-Match
is set,If-Match
otherwise- Returns:
- given service instance, with
If-Match
orIf-None-Match
set
-
ifMatch
public static <T> T ifMatch(T service, javax.ws.rs.core.EntityTag etag)
Sets theIf-Match
header on the given service instance.- Type Parameters:
T
- any service class- Parameters:
service
- service class instanceetag
- 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 theIf-None-Match
header on the given service instance.- Type Parameters:
T
- any service class- Parameters:
service
- service class instanceetag
- ETag value- Returns:
- given service instance, with
If-None-Match
set
-
getLatestEntityTag
public static <T> javax.ws.rs.core.EntityTag getLatestEntityTag(T service)
FetchesETag
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
-
-