Class DataAdapterClient
java.lang.Object
io.getlime.security.powerauth.lib.dataadapter.client.DataAdapterClient
public class DataAdapterClient
extends java.lang.Object
Data Adapter Client provides methods for communication with the Data Adapter.
It uses the RestTemplate class to handle REST API calls. HTTP client is used instead of default client
so that error responses contain full response bodies.
- Author:
- Roman Strobl, roman.strobl@wultra.com
-
Constructor Summary
Constructors Constructor Description DataAdapterClient(java.lang.String serviceUrl)Create a new client with provided base URL.DataAdapterClient(java.lang.String serviceUrl, com.fasterxml.jackson.databind.ObjectMapper objectMapper)Create a new client with provided base URL and custom object mapper. -
Method Summary
Modifier and Type Method Description io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.UserAuthenticationResponse>authenticateUser(java.lang.String userId, java.lang.String organizationId, java.lang.String password, io.getlime.security.powerauth.lib.dataadapter.model.entity.AuthenticationContext authenticationContext, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)Perform authentication with provided username and password.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateSmsAuthorizationResponse>createAuthorizationSms(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, java.lang.String lang, boolean resend)Create authorization SMS message with OTP authorization code.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateConsentFormResponse>createConsentForm(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, java.lang.String lang)Create OAuth 2.0 consent form.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateImplicitLoginOperationResponse>createImplicitLoginOperation(java.lang.String clientId, java.lang.String[] scopes)Create a new login operation from the OAuth 2.0 login context.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.DecorateOperationFormDataResponse>decorateOperationFormData(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)Decorate operation form data.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.AfsResponse>executeAfsAction(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, io.getlime.security.powerauth.lib.dataadapter.model.request.AfsRequestParameters afsRequestParameters, java.util.Map<java.lang.String,java.lang.Object> extras)Execute an anti-fraud system action with information about current step and retrieve response which can override authentication instruments used in current authentication step.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.UserDetailResponse>fetchUserDetail(java.lang.String userId, java.lang.String organizationId)Obtain user details for given user ID.io.getlime.core.rest.model.base.response.ObjectResponseformDataChangedNotification(io.getlime.security.powerauth.lib.dataadapter.model.entity.FormDataChange formDataChange, java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)Send a notification about form data change.org.springframework.web.client.RestTemplategetRestTemplate()Get default instance of REST client.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.InitAuthMethodResponse>initAuthMethod(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)Initialize an authentication method.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.InitConsentFormResponse>initConsentForm(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)Initialize OAuth 2.0 consent form.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.UserDetailResponse>lookupUser(java.lang.String username, java.lang.String organizationId, java.lang.String clientCertificate, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)Lookup user account.io.getlime.core.rest.model.base.response.ObjectResponseoperationChangedNotification(io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationChange operationChange, java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)Send a notification about operation change.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.SaveConsentFormResponse>saveConsentForm(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, java.util.List<io.getlime.security.powerauth.lib.dataadapter.model.entity.ConsentOption> options)Save options selected by the user in the OAuth 2.0 consent form.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.ValidateConsentFormResponse>validateConsentForm(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, java.lang.String lang, java.util.List<io.getlime.security.powerauth.lib.dataadapter.model.entity.ConsentOption> options)Validate options selected by the user in the OAuth 2.0 consent form.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.VerifySmsAuthorizationResponse>verifyAuthorizationSms(java.lang.String messageId, java.lang.String authorizationCode, java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)Verify OTP authorization code for previously generated SMS message.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.VerifySmsAndPasswordResponse>verifyAuthorizationSmsAndPassword(java.lang.String messageId, java.lang.String authorizationCode, java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, java.lang.String password, io.getlime.security.powerauth.lib.dataadapter.model.entity.AuthenticationContext authenticationContext, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)Verify OTP authorization code for previously generated SMS message together with user password.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.VerifyCertificateResponse>verifyClientCertificate(java.lang.String userId, java.lang.String organizationId, java.lang.String clientCertificate, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)Verify client TLS certificate.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
DataAdapterClient
public DataAdapterClient(java.lang.String serviceUrl)Create a new client with provided base URL.- Parameters:
serviceUrl- Base URL.
-
DataAdapterClient
public DataAdapterClient(java.lang.String serviceUrl, com.fasterxml.jackson.databind.ObjectMapper objectMapper)Create a new client with provided base URL and custom object mapper.- Parameters:
serviceUrl- Base URL.objectMapper- Object mapper.
-
-
Method Details
-
getRestTemplate
public org.springframework.web.client.RestTemplate getRestTemplate()Get default instance of REST client.- Returns:
- RestTemplate with default configuration.
-
lookupUser
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.UserDetailResponse> lookupUser(java.lang.String username, java.lang.String organizationId, java.lang.String clientCertificate, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorExceptionLookup user account.- Parameters:
username- Username for user account which is being looked up.organizationId- Organization ID for which the user ID is assigned to.clientCertificate- Client TLS certificate.operationContext- Operation context.- Returns:
- Response with user details.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails or user does not exist.
-
authenticateUser
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.UserAuthenticationResponse> authenticateUser(java.lang.String userId, java.lang.String organizationId, java.lang.String password, io.getlime.security.powerauth.lib.dataadapter.model.entity.AuthenticationContext authenticationContext, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorExceptionPerform authentication with provided username and password.- Parameters:
userId- User ID of user who is being authenticated.organizationId- Organization ID.password- Password for this authentication request, optionally encrypted.authenticationContext- Authentication context.operationContext- Operation context.- Returns:
- Authentication response is returned in case of successful authentication.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails or authentication fails.
-
fetchUserDetail
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.UserDetailResponse> fetchUserDetail(java.lang.String userId, java.lang.String organizationId) throws DataAdapterClientErrorExceptionObtain user details for given user ID.- Parameters:
userId- User ID for the user to be obtained.organizationId- Organization ID.- Returns:
- A response with user details.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails or user does not exist.
-
initAuthMethod
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.InitAuthMethodResponse> initAuthMethod(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorExceptionInitialize an authentication method.- Parameters:
userId- User ID.organizationId- Organization ID.authMethod- Authentication method.operationContext- Operation context.- Returns:
- Response with user details.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails.
-
createAuthorizationSms
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateSmsAuthorizationResponse> createAuthorizationSms(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, java.lang.String lang, boolean resend) throws DataAdapterClientErrorExceptionCreate authorization SMS message with OTP authorization code.- Parameters:
userId- User ID.organizationId- Organization ID.accountStatus- User account status.authMethod- Authentication method.operationContext- Operation context.lang- Language for i18n.resend- Whether SMS is being resent.- Returns:
- Response with generated messageId.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails or SMS could not be delivered.
-
verifyAuthorizationSms
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.VerifySmsAuthorizationResponse> verifyAuthorizationSms(java.lang.String messageId, java.lang.String authorizationCode, java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorExceptionVerify OTP authorization code for previously generated SMS message.- Parameters:
messageId- Message ID.authorizationCode- User entered authorization code.userId- User ID.organizationId- Organization ID.accountStatus- User account status.operationContext- Operation context.- Returns:
- Empty response returned when action succeeds.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails or SMS code authorization fails.
-
verifyAuthorizationSmsAndPassword
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.VerifySmsAndPasswordResponse> verifyAuthorizationSmsAndPassword(java.lang.String messageId, java.lang.String authorizationCode, java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, java.lang.String password, io.getlime.security.powerauth.lib.dataadapter.model.entity.AuthenticationContext authenticationContext, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorExceptionVerify OTP authorization code for previously generated SMS message together with user password.- Parameters:
messageId- Message ID.authorizationCode- User entered authorization code.userId- User ID for this authentication request.organizationId- Organization ID for this authentication request.password- Password for this authentication request, optionally encrypted.accountStatus- Current user account status.authenticationContext- Authentication context.operationContext- Operation context.- Returns:
- Empty response returned when action succeeds.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails or authentication/authorization fails.
-
createImplicitLoginOperation
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateImplicitLoginOperationResponse> createImplicitLoginOperation(java.lang.String clientId, java.lang.String[] scopes) throws DataAdapterClientErrorExceptionCreate a new login operation from the OAuth 2.0 login context.- Parameters:
clientId- OAuth 2.0 Client ID.scopes- OAuth 2.0 Scopes.- Returns:
- Information about a new operation.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails.
-
verifyClientCertificate
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.VerifyCertificateResponse> verifyClientCertificate(java.lang.String userId, java.lang.String organizationId, java.lang.String clientCertificate, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorExceptionVerify client TLS certificate.- Parameters:
userId- User ID for this authentication request.organizationId- Organization ID for this authentication request.clientCertificate- Client TLS certificate.authMethod- Authentication method.accountStatus- Current user account status.operationContext- Operation context.- Returns:
- Empty response returned when action succeeds.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails or authentication/authorization fails.
-
decorateOperationFormData
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.DecorateOperationFormDataResponse> decorateOperationFormData(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorExceptionDecorate operation form data.- Parameters:
userId- User ID of the user for this request.organizationId- Organization ID for this request.operationContext- Operation context.authMethod- Authentication method.- Returns:
- Decorated operation form data.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails.
-
formDataChangedNotification
public io.getlime.core.rest.model.base.response.ObjectResponse formDataChangedNotification(io.getlime.security.powerauth.lib.dataadapter.model.entity.FormDataChange formDataChange, java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorExceptionSend a notification about form data change.- Parameters:
formDataChange- Operation form data change.userId- User ID.organizationId- Organization ID.operationContext- Operation context.- Returns:
- Object response.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails.
-
operationChangedNotification
public io.getlime.core.rest.model.base.response.ObjectResponse operationChangedNotification(io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationChange operationChange, java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorExceptionSend a notification about operation change.- Parameters:
operationChange- Operation change.userId- User ID.organizationId- Organization ID.operationContext- Operation context.- Returns:
- Object response.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails.
-
initConsentForm
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.InitConsentFormResponse> initConsentForm(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorExceptionInitialize OAuth 2.0 consent form.- Parameters:
userId- User ID.organizationId- Organization ID.operationContext- Operation context.- Returns:
- Response with information whether consent form should be displayed
- Throws:
DataAdapterClientErrorException- Thrown when client request fails.
-
createConsentForm
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateConsentFormResponse> createConsentForm(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, java.lang.String lang) throws DataAdapterClientErrorExceptionCreate OAuth 2.0 consent form.- Parameters:
userId- User ID.organizationId- Organization ID.operationContext- Operation context.lang- Language of the text in the consent form.- Returns:
- Consent form with text and options to select by the user.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails.
-
validateConsentForm
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.ValidateConsentFormResponse> validateConsentForm(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, java.lang.String lang, java.util.List<io.getlime.security.powerauth.lib.dataadapter.model.entity.ConsentOption> options) throws DataAdapterClientErrorExceptionValidate options selected by the user in the OAuth 2.0 consent form.- Parameters:
userId- User ID.organizationId- Organization ID.operationContext- Operation context.lang- Language of the text in the consent form.options- Consent options selected by the user.- Returns:
- Consent form validation result.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails.
-
saveConsentForm
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.SaveConsentFormResponse> saveConsentForm(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, java.util.List<io.getlime.security.powerauth.lib.dataadapter.model.entity.ConsentOption> options) throws DataAdapterClientErrorExceptionSave options selected by the user in the OAuth 2.0 consent form.- Parameters:
userId- User ID.organizationId- Organization ID.operationContext- Operation context.options- Consent options selected by the user.- Returns:
- Response with indication whether consent form was successfully saved.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails.
-
executeAfsAction
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.AfsResponse> executeAfsAction(java.lang.String userId, java.lang.String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, io.getlime.security.powerauth.lib.dataadapter.model.request.AfsRequestParameters afsRequestParameters, java.util.Map<java.lang.String,java.lang.Object> extras) throws DataAdapterClientErrorExceptionExecute an anti-fraud system action with information about current step and retrieve response which can override authentication instruments used in current authentication step.- Parameters:
userId- User ID.organizationId- Organization ID.operationContext- Operation context.afsRequestParameters- Request parameters for AFS.extras- Extra parameters for AFS.- Returns:
- Response with indication whether consent form was successfully saved.
- Throws:
DataAdapterClientErrorException- Thrown when client request fails.
-