Package com.ibm.security.access.ciclient
Class CiClient
- java.lang.Object
-
- CiClientBase
-
- com.ibm.security.access.ciclient.CiClient
-
public class CiClient extends CiClientBase
Convenience wrapper for the HTTP client to simplify/standardize CI requests.
-
-
Constructor Summary
Constructors Constructor Description CiClient()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static boolean
basicAuthentication(CiServerConnection connection, java.lang.String username, java.lang.String password)
static boolean
basicAuthentication(CiServerConnection connection, java.lang.String username, java.lang.String password, java.lang.String locale)
Performs username/password authentication against IBM Security Verify.static HttpResponse
createFactorVerification(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String json, java.lang.String locale)
Create a verification for the specified enrollment.static HttpResponse
createTransaction(CiServerConnection connection, java.lang.String authenticatorId, java.lang.String json)
Create an IBM Verify transaction.static HttpResponse
createTransaction(CiServerConnection connection, java.lang.String authenticatorId, java.lang.String json, java.lang.String locale)
Create an IBM Verify transaction.static HttpResponse
deleteAuthenticator(CiServerConnection connection, java.lang.String id)
Delete the authenticator with the provided ID.static HttpResponse
deleteAuthenticator(CiServerConnection connection, java.lang.String id, java.lang.String locale)
Delete the authenticator with the provided ID.static HttpResponse
deleteFactor(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String locale)
Delete a specific authentication factor with the provided ID and type.static HttpResponse
deleteRequest(CiServerConnection connection, java.lang.String url)
Generic CI DELETE method.static HttpResponse
deleteRequest(CiServerConnection connection, java.lang.String url, java.lang.String locale)
Generic CI DELETE method.static HttpResponse
enrollFactor(CiServerConnection connection, java.lang.String type, java.lang.String json, java.lang.String queryParams, java.lang.String locale)
Enroll an authentication factor with provided type and JSON payload.static AccessToken
getAccessToken(CiServerConnection connection)
Fetches the IBM Security Verify access token for the configured CI Server Connection.static HttpResponse
getAuthenticator(CiServerConnection connection, java.lang.String id)
Fetches a specific authenticator with the provided ID.static HttpResponse
getAuthenticator(CiServerConnection connection, java.lang.String id, java.lang.String locale)
Fetches a specific authenticator with the provided ID.static HttpResponse
getAuthenticators(CiServerConnection connection, java.lang.String userId)
Fetch all authenticators registered with userId set as the owner.static HttpResponse
getAuthenticators(CiServerConnection connection, java.lang.String userId, java.lang.String locale)
Fetch all authenticators that are owned by the provided SCIM user ID.static HttpResponse
getAuthenticators(CiServerConnection connection, java.lang.String userId, java.lang.String locale, java.lang.String search)
Fetch all authenticators that are owned by the provided SCIM user ID.static HttpResponse
getFactor(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String locale)
Fetch a specific authentication factor with the given type and ID.static HttpResponse
getFactors(CiServerConnection connection, java.lang.String search, java.lang.String locale)
Fetch a list of authentication factors based on an optional search string.static HttpResponse
getFactors(CiServerConnection connection, java.lang.String userId, java.lang.String locale, java.lang.String search)
Deprecated.It is not recommended to use this method as it has the userId attribute hardcoded.static HttpResponse
getFactorVerification(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String verificationId, java.lang.String locale)
Fetch a specific verification.static HttpResponse
getFactorVerifications(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String locale)
Fetch a list of verifications for the provided authentication factor.static HttpResponse
getRequest(CiServerConnection connection, java.lang.String url)
Generic CI get method.static HttpResponse
getRequest(CiServerConnection connection, java.lang.String url, java.lang.String locale)
Generic CI get method.static HttpResponse
getTransaction(CiServerConnection connection, java.lang.String authenticatorId, java.lang.String id)
Fetch a specific transaction for the provided authenticator ID.static HttpResponse
getTransaction(CiServerConnection connection, java.lang.String authenticatorId, java.lang.String transactionId, java.lang.String locale)
Fetch a specific transaction for the provided authenticator ID.static HttpResponse
getTransactions(CiServerConnection connection, java.lang.String authenticatorId)
Fetch all transactions for the provided authenticator ID.static HttpResponse
getTransactions(CiServerConnection connection, java.lang.String authenticatorId, java.lang.String locale)
Fetch all transactions for the provided authenticator ID.static java.lang.String
getUser(CiServerConnection connection, java.lang.String username)
Fetches the IBM Security Verify user object as a JSON String.static java.lang.String
getUser(CiServerConnection connection, java.lang.String username, java.lang.String locale)
Fetches the IBM Security Verify user object as a JSON String.static HttpResponse
postRequest(CiServerConnection connection, java.lang.String url, java.lang.String json)
Generic CI POST method.static HttpResponse
postRequest(CiServerConnection connection, java.lang.String url, java.lang.String json, java.lang.String locale)
Generic CI POST method.static HttpResponse
putRequest(CiServerConnection connection, java.lang.String url, java.lang.String json)
Generic CI PUT method.static HttpResponse
putRequest(CiServerConnection connection, java.lang.String url, java.lang.String json, java.lang.String locale)
Generic CI PUT method.static HttpResponse
registerAuthenticator(CiServerConnection connection, java.lang.String json, boolean respAsJson)
Registers an authenticator with IBM Security Verify.static HttpResponse
registerAuthenticator(CiServerConnection connection, java.lang.String json, boolean respAsJson, java.lang.String locale)
Registers an authenticator with IBM Security Verify.static HttpResponse
updateAuthenticator(CiServerConnection connection, java.lang.String id, java.lang.String json)
Update an authenticator with the provided JSON payload.static HttpResponse
updateAuthenticator(CiServerConnection connection, java.lang.String id, java.lang.String json, java.lang.String locale)
Update an authenticator with the provided JSON payload.static HttpResponse
updateFactor(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String json, java.lang.String locale)
Update a specific authentication factor with the provided ID, type, and JSON payload.static HttpResponse
verifyFactor(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String verificationId, java.lang.String json, java.lang.String locale)
Complete a verification with the provided payload for a specific authentication factor.static HttpResponse
verifyTOTPFactor(CiServerConnection connection, java.lang.String id, java.lang.String json, java.lang.String locale)
Complete a TOTP verification with the provided OTP payload.
-
-
-
Method Detail
-
getAccessToken
public static AccessToken getAccessToken(CiServerConnection connection)
Fetches the IBM Security Verify access token for the configured CI Server Connection. This method first attempts to get the token from a LRU cache, and if the token is not in the cache, or has expired, a new token it retrieved.- Parameters:
connection
- The CI Server Connection which contains details required for the access token flow, client ID and client secret.- Returns:
- The AccessToken object.
-
getUser
public static java.lang.String getUser(CiServerConnection connection, java.lang.String username)
Fetches the IBM Security Verify user object as a JSON String. The user object will be in SCIM format.- Parameters:
connection
- The CI Server Connection.username
- The username of the CI user.- Returns:
- A JSON String representation of the user.
-
getUser
public static java.lang.String getUser(CiServerConnection connection, java.lang.String username, java.lang.String locale)
Fetches the IBM Security Verify user object as a JSON String. The user object will be in SCIM format.- Parameters:
connection
- The CI Server Connection.username
- The username of the CI user.locale
- The locale to use in the Accept-Language header.- Returns:
- A JSON String representation of the user.
-
basicAuthentication
public static boolean basicAuthentication(CiServerConnection connection, java.lang.String username, java.lang.String password)
-
basicAuthentication
public static boolean basicAuthentication(CiServerConnection connection, java.lang.String username, java.lang.String password, java.lang.String locale)
Performs username/password authentication against IBM Security Verify.- Parameters:
connection
- The CI Server Connection.username
- The username of the CI user.password
- The password of the CI user.locale
- The locale to use in the Accept-Language header.- Returns:
- A boolean indicating if the authentication succeeded or failed.
-
registerAuthenticator
public static HttpResponse registerAuthenticator(CiServerConnection connection, java.lang.String json, boolean respAsJson)
Registers an authenticator with IBM Security Verify. If respAsJson is true, then the qrcodeInResponse query string param will be set to true. This means the response from CI will be JSON with the base64 encoded QR code, rather than the default response which is the QR code as an image.- Parameters:
connection
- The CI Server Connection.json
- The authentication registration payload.respAsJson
- A boolean indicating if the response should be JSON or an image.- Returns:
- The HTTP response. Can be null if the request failed.
-
registerAuthenticator
public static HttpResponse registerAuthenticator(CiServerConnection connection, java.lang.String json, boolean respAsJson, java.lang.String locale)
Registers an authenticator with IBM Security Verify. If respAsJson is true, then the qrcodeInResponse query string param will be set to true. This means the response from CI will be JSON with the base64 encoded QR code, rather than the default response which is the QR code as an image.- Parameters:
connection
- The CI Server Connection.json
- The authentication registration payload.respAsJson
- A boolean indicating if the response should be JSON or an image.locale
- The locale to use in the Accept-Language header.- Returns:
- The HTTP response. Can be null if the request failed.
-
getAuthenticators
public static HttpResponse getAuthenticators(CiServerConnection connection, java.lang.String userId)
Fetch all authenticators registered with userId set as the owner.- Parameters:
connection
- The CI Server Connection.userId
- The user's SCIM ID.- Returns:
- The HTTP response. Can be null if the request failed.
-
getAuthenticators
public static HttpResponse getAuthenticators(CiServerConnection connection, java.lang.String userId, java.lang.String locale)
Fetch all authenticators that are owned by the provided SCIM user ID.- Parameters:
connection
- The CI Server Connection.userId
- The user's SCIM ID.locale
- The locale to use in the Accept-Language header.- Returns:
- The HTTP response. Can be null if the request failed.
-
getAuthenticators
public static HttpResponse getAuthenticators(CiServerConnection connection, java.lang.String userId, java.lang.String locale, java.lang.String search)
Fetch all authenticators that are owned by the provided SCIM user ID.- Parameters:
connection
- The CI Server Connection.userId
- The user's SCIM ID.locale
- The locale to use in the Accept-Language header.search
- The search parameters to apply to the request. Must be of the form attribute=value. For example: "enabled=true"- Returns:
- The HTTP response. Can be null if the request failed.
-
getFactors
public static HttpResponse getFactors(CiServerConnection connection, java.lang.String search, java.lang.String locale)
Fetch a list of authentication factors based on an optional search string. If the search string is null, all factors across all users will be returned.- Parameters:
connection
- The CI Server Connection.search
- The search parameters to apply to the request. Must be of the form attribute=value. For example: 'userId="61200033O2"&validated=true'locale
- The locale to use in the Accept-Language header, or null if not required.- Returns:
- The HTTP response. Can be null if the request failed.
- Since:
- Verify Access v10.0.1.0
-
getFactor
public static HttpResponse getFactor(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String locale)
Fetch a specific authentication factor with the given type and ID.- Parameters:
connection
- The CI Server Connection.type
- The type of the authentication factor. For example "totp", "emailotp", "smsotp", "fido2", etc.id
- The ID of the authentication factorlocale
- The locale to use in the Accept-Language header, or null if not required.- Returns:
- The HTTP response. Can be null if the request failed.
- Since:
- Verify Access v10.0.1.0
-
enrollFactor
public static HttpResponse enrollFactor(CiServerConnection connection, java.lang.String type, java.lang.String json, java.lang.String queryParams, java.lang.String locale)
Enroll an authentication factor with provided type and JSON payload.- Parameters:
connection
- The CI Server Connection.type
- The type of the authentication factor. For example "totp", "emailotp", "smsotp", "fido2", etc.json
- The JSON payload of the enrollment.queryParams
- The query parameters to apply to the request. Must be of the form key=value. For example: 'qrCodeInResponse=true'locale
- The locale to use in the Accept-Language header, or null if not required.- Returns:
- The HTTP response. Can be null if the request failed.
- Since:
- Verify Access v10.0.1.0
-
getFactorVerifications
public static HttpResponse getFactorVerifications(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String locale)
Fetch a list of verifications for the provided authentication factor.- Parameters:
connection
- The CI Server Connection.type
- The type of the authentication factor. For example "emailotp", "smsotp", etc.id
- The ID of the authentication factorlocale
- The locale to use in the Accept-Language header, or null if not required.- Returns:
- The HTTP response. Can be null if the request failed.
- Since:
- Verify Access v10.0.1.0
-
getFactorVerification
public static HttpResponse getFactorVerification(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String verificationId, java.lang.String locale)
Fetch a specific verification.- Parameters:
connection
- The CI Server Connection.type
- The type of the authentication factor. For example "emailotp", "smsotp", etc.id
- The ID of the authentication factorverificationId
- The ID of the verificationlocale
- The locale to use in the Accept-Language header, or null if not required.- Returns:
- The HTTP response. Can be null if the request failed.
- Since:
- Verify Access v10.0.1.0
-
createFactorVerification
public static HttpResponse createFactorVerification(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String json, java.lang.String locale)
Create a verification for the specified enrollment.- Parameters:
connection
- The CI Server Connection.type
- The type of the authentication factor. For example "emailotp", "smsotp", etc.id
- The ID of the authentication factorjson
- The JSON payload of the enrollment.locale
- The locale to use in the Accept-Language header, or null if not required.- Returns:
- The HTTP response. Can be null if the request failed.
- Since:
- Verify Access v10.0.1.0
-
updateFactor
public static HttpResponse updateFactor(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String json, java.lang.String locale)
Update a specific authentication factor with the provided ID, type, and JSON payload.- Parameters:
connection
- The CI Server Connection.type
- The type of the authentication factor. For example "totp", "emailotp", "smsotp", "fido2", etc.id
- The ID of the authentication factorjson
- The JSON payload of the enrollment.locale
- The locale to use in the Accept-Language header, or null if not required.- Returns:
- The HTTP response. Can be null if the request failed.
- Since:
- Verify Access v10.0.1.0
-
deleteFactor
public static HttpResponse deleteFactor(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String locale)
Delete a specific authentication factor with the provided ID and type.- Parameters:
connection
- The CI Server Connection.type
- The type of the authentication factor. For example "totp", "emailotp", "smsotp", "fido2", etc.id
- The ID of the authentication factorlocale
- The locale to use in the Accept-Language header, or null if not required.- Returns:
- The HTTP response. Can be null if the request failed.
- Since:
- Verify Access v10.0.1.0
-
verifyTOTPFactor
public static HttpResponse verifyTOTPFactor(CiServerConnection connection, java.lang.String id, java.lang.String json, java.lang.String locale)
Complete a TOTP verification with the provided OTP payload.- Parameters:
connection
- The CI Server Connection.id
- The ID of the authentication factorjson
- The JSON payload of the verification.locale
- The locale to use in the Accept-Language header, or null if not required.- Returns:
- The HTTP response. Can be null if the request failed.
- Since:
- Verify Access v10.0.1.0
-
verifyFactor
public static HttpResponse verifyFactor(CiServerConnection connection, java.lang.String type, java.lang.String id, java.lang.String verificationId, java.lang.String json, java.lang.String locale)
Complete a verification with the provided payload for a specific authentication factor.- Parameters:
connection
- The CI Server Connection.type
- The type of the authentication factor. For example "emailotp", "smsotp", etc.id
- The ID of the authentication factorverificationId
- The ID of the verificationjson
- The JSON payload of the verification.locale
- The locale to use in the Accept-Language header, or null if not required.- Returns:
- The HTTP response. Can be null if the request failed.
- Since:
- Verify Access v10.0.1.0
-
getFactors
public static HttpResponse getFactors(CiServerConnection connection, java.lang.String userId, java.lang.String locale, java.lang.String search)
Deprecated.It is not recommended to use this method as it has the userId attribute hardcoded. UsegetFactors(CiServerConnection, String, String)
instead.Fetch the authentication factors that are owned by the provided SCIM user ID.- Parameters:
connection
- The CI Server Connection.userId
- The user's SCIM ID.locale
- The locale to use in the Accept-Language header, or null if not required.search
- The search parameters to apply to the request. Must be of the form attribute=value. For example: "validated=true"- Returns:
- The HTTP response. Can be null if the request failed.
- Since:
- Verify Access v10.0.0.0
-
getAuthenticator
public static HttpResponse getAuthenticator(CiServerConnection connection, java.lang.String id)
Fetches a specific authenticator with the provided ID.- Parameters:
connection
- The CI Server Connection.id
- The ID of the authenticator- Returns:
- The HTTP response. Can be null if the request failed.
-
getAuthenticator
public static HttpResponse getAuthenticator(CiServerConnection connection, java.lang.String id, java.lang.String locale)
Fetches a specific authenticator with the provided ID.- Parameters:
connection
- The CI Server Connection.id
- The ID of the authenticatorlocale
- The locale to use in the Accept-Language header.- Returns:
- The HTTP response. Can be null if the request failed.
-
updateAuthenticator
public static HttpResponse updateAuthenticator(CiServerConnection connection, java.lang.String id, java.lang.String json)
Update an authenticator with the provided JSON payload.- Parameters:
connection
- The CI Server Connection.id
- The ID of the authenticatorjson
- The updated JSON payload of the authenticator.- Returns:
- The HTTP response. Can be null if the request failed.
-
updateAuthenticator
public static HttpResponse updateAuthenticator(CiServerConnection connection, java.lang.String id, java.lang.String json, java.lang.String locale)
Update an authenticator with the provided JSON payload.- Parameters:
connection
- The CI Server Connection.id
- The ID of the authenticatorjson
- The updated JSON payload of the authenticator.locale
- The locale to use in the Accept-Language header.- Returns:
- The HTTP response. Can be null if the request failed.
-
deleteAuthenticator
public static HttpResponse deleteAuthenticator(CiServerConnection connection, java.lang.String id)
Delete the authenticator with the provided ID.- Parameters:
connection
- The CI Server Connection.id
- The ID of the authenticator- Returns:
- The HTTP response. Can be null if the request failed.
-
deleteAuthenticator
public static HttpResponse deleteAuthenticator(CiServerConnection connection, java.lang.String id, java.lang.String locale)
Delete the authenticator with the provided ID.- Parameters:
connection
- The CI Server Connection.id
- The ID of the authenticatorlocale
- The locale to use in the Accept-Language header.- Returns:
- The HTTP response. Can be null if the request failed.
-
createTransaction
public static HttpResponse createTransaction(CiServerConnection connection, java.lang.String authenticatorId, java.lang.String json)
Create an IBM Verify transaction.- Parameters:
connection
- The CI Server Connection.authenticatorId
- The ID of the authenticatorjson
- The JSON payload of the transaction.- Returns:
- The HTTP response. Can be null if the request failed.
-
createTransaction
public static HttpResponse createTransaction(CiServerConnection connection, java.lang.String authenticatorId, java.lang.String json, java.lang.String locale)
Create an IBM Verify transaction.- Parameters:
connection
- The CI Server Connection.authenticatorId
- The ID of the authenticatorjson
- The JSON payload of the transaction.locale
- The locale to use in the Accept-Language header.- Returns:
- The HTTP response. Can be null if the request failed.
-
getTransactions
public static HttpResponse getTransactions(CiServerConnection connection, java.lang.String authenticatorId)
Fetch all transactions for the provided authenticator ID.- Parameters:
connection
- The CI Server Connection.authenticatorId
- The ID of the authenticator- Returns:
- The HTTP response. Can be null if the request failed.
-
getTransactions
public static HttpResponse getTransactions(CiServerConnection connection, java.lang.String authenticatorId, java.lang.String locale)
Fetch all transactions for the provided authenticator ID.- Parameters:
connection
- The CI Server Connection.authenticatorId
- The ID of the authenticatorlocale
- The locale to use in the Accept-Language header.- Returns:
- The HTTP response. Can be null if the request failed.
-
getTransaction
public static HttpResponse getTransaction(CiServerConnection connection, java.lang.String authenticatorId, java.lang.String id)
Fetch a specific transaction for the provided authenticator ID.- Parameters:
connection
- The CI Server Connection.authenticatorId
- The ID of the authenticatortransactionId
- The ID of the transaction- Returns:
- The HTTP response. Can be null if the request failed.
-
getTransaction
public static HttpResponse getTransaction(CiServerConnection connection, java.lang.String authenticatorId, java.lang.String transactionId, java.lang.String locale)
Fetch a specific transaction for the provided authenticator ID.- Parameters:
connection
- The CI Server Connection.authenticatorId
- The ID of the authenticatortransactionId
- The ID of the transactionlocale
- The locale to use in the Accept-Language header.- Returns:
- The HTTP response. Can be null if the request failed.
-
getRequest
public static HttpResponse getRequest(CiServerConnection connection, java.lang.String url)
Generic CI get method.- Parameters:
connection
- The CI Server Connection.url
- The URL to GET- Returns:
- The HTTP response. Null if invalid URL or no response.
-
getRequest
public static HttpResponse getRequest(CiServerConnection connection, java.lang.String url, java.lang.String locale)
Generic CI get method.- Parameters:
connection
- The CI Server Connection.url
- The URL to GETlocale
- The locale to use in the Accept-Language header.- Returns:
- The HTTP response. Null if invalid URL or no response.
-
postRequest
public static HttpResponse postRequest(CiServerConnection connection, java.lang.String url, java.lang.String json)
Generic CI POST method.- Parameters:
connection
- The CI Server Connection.url
- The URL to POSTjson
- The JSON payload.- Returns:
- The HTTP response. Null if invalid URL or no response.
-
postRequest
public static HttpResponse postRequest(CiServerConnection connection, java.lang.String url, java.lang.String json, java.lang.String locale)
Generic CI POST method.- Parameters:
connection
- The CI Server Connection.url
- The URL to POSTjson
- The JSON payload.locale
- The locale to use in the Accept-Language header.- Returns:
- The HTTP response. Null if invalid URL or no response.
-
putRequest
public static HttpResponse putRequest(CiServerConnection connection, java.lang.String url, java.lang.String json)
Generic CI PUT method.- Parameters:
connection
- The CI Server Connection.url
- The URL to PUTjson
- The JSON payload.- Returns:
- The HTTP response. Null if invalid URL or no response.
-
putRequest
public static HttpResponse putRequest(CiServerConnection connection, java.lang.String url, java.lang.String json, java.lang.String locale)
Generic CI PUT method.- Parameters:
connection
- The CI Server Connection.url
- The URL to PUTjson
- The JSON payload.locale
- The locale to use in the Accept-Language header.- Returns:
- The HTTP response. Null if invalid URL or no response.
-
deleteRequest
public static HttpResponse deleteRequest(CiServerConnection connection, java.lang.String url)
Generic CI DELETE method.- Parameters:
connection
- The CI Server Connection.url
- The URL to DELETE- Returns:
- The HTTP response. Null if invalid URL or no response.
-
deleteRequest
public static HttpResponse deleteRequest(CiServerConnection connection, java.lang.String url, java.lang.String locale)
Generic CI DELETE method.- Parameters:
connection
- The CI Server Connection.url
- The URL to DELETElocale
- The locale to use in the Accept-Language header.- Returns:
- The HTTP response. Null if invalid URL or no response.
-
-