Class DataAdapterClient
java.lang.Object
io.getlime.security.powerauth.lib.dataadapter.client.DataAdapterClient
public class DataAdapterClient extends Object
Data Adapter Client provides methods for communication with the Data Adapter.
It uses the RestClient class to handle REST API calls.
- Author:
- Roman Strobl, roman.strobl@wultra.com
-
Constructor Summary
Constructors Constructor Description DataAdapterClient(com.wultra.core.rest.client.base.RestClientConfiguration restClientConfiguration)Create a new client with provided base URL.DataAdapterClient(String serviceBaseUrl)Create a new client with provided base URL. -
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(String userId, String organizationId, 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>createAndSendAuthorizationSms(String userId, 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, String lang, boolean resend)Create and send authorization SMS message with new OTP authorization code.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateConsentFormResponse>createConsentForm(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, 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(String clientId, 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(String userId, 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(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, io.getlime.security.powerauth.lib.dataadapter.model.request.AfsRequestParameters afsRequestParameters, Map<String,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(String userId, String organizationId)Obtain user details for given user ID.io.getlime.core.rest.model.base.response.ResponseformDataChangedNotification(io.getlime.security.powerauth.lib.dataadapter.model.entity.FormDataChange formDataChange, String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)Send a notification about form data change.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.GetPAOperationMappingResponse>getPAOperationMapping(String userId, String organizationId, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)Get the operation mapping from Next Step operation to PowerAuth operation.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.InitAuthMethodResponse>initAuthMethod(String userId, 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(String userId, 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(String username, String organizationId, String clientCertificate, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext)Lookup user account.io.getlime.core.rest.model.base.response.ResponseoperationChangedNotification(io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationChange operationChange, String userId, 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(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, 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.SendAuthorizationSmsResponse>sendAuthorizationSms(String userId, 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, String messageId, String authorizationCode, String lang, boolean resend)Send authorization SMS message with existing OTP authorization code.io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.ValidateConsentFormResponse>validateConsentForm(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, String lang, 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(String messageId, String authorizationCode, String userId, 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(String messageId, String authorizationCode, String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, 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(String userId, String organizationId, 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.
-
Constructor Details
-
DataAdapterClient
Create a new client with provided base URL.- Parameters:
serviceBaseUrl- REST service base URL.- Throws:
DataAdapterClientErrorException- Thrown when REST client initialization fails.
-
DataAdapterClient
public DataAdapterClient(com.wultra.core.rest.client.base.RestClientConfiguration restClientConfiguration) throws DataAdapterClientErrorExceptionCreate a new client with provided base URL.- Parameters:
restClientConfiguration- REST service client configuration.- Throws:
DataAdapterClientErrorException- Thrown when REST client initialization fails.
-
-
Method Details
-
lookupUser
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.UserDetailResponse> lookupUser(String username, String organizationId, 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(String userId, String organizationId, 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(String userId, 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(String userId, 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.
-
createAndSendAuthorizationSms
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.CreateSmsAuthorizationResponse> createAndSendAuthorizationSms(String userId, 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, String lang, boolean resend) throws DataAdapterClientErrorExceptionCreate and send authorization SMS message with new 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.
-
sendAuthorizationSms
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.SendAuthorizationSmsResponse> sendAuthorizationSms(String userId, 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, String messageId, String authorizationCode, String lang, boolean resend) throws DataAdapterClientErrorExceptionSend authorization SMS message with existing OTP authorization code.- Parameters:
userId- User ID.organizationId- Organization ID.accountStatus- User account status.authMethod- Authentication method.operationContext- Operation context.messageId- Message ID.authorizationCode- SMS OTP authorization code.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(String messageId, String authorizationCode, String userId, 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(String messageId, String authorizationCode, String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.enumeration.AccountStatus accountStatus, 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(String clientId, 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.
-
getPAOperationMapping
public io.getlime.core.rest.model.base.response.ObjectResponse<io.getlime.security.powerauth.lib.dataadapter.model.response.GetPAOperationMappingResponse> getPAOperationMapping(String userId, String organizationId, io.getlime.security.powerauth.lib.nextstep.model.enumeration.AuthMethod authMethod, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext) throws DataAdapterClientErrorExceptionGet the operation mapping from Next Step operation to PowerAuth operation.- Parameters:
userId- User ID of the user for this request.organizationId- Organization ID for this request.authMethod- Authentication method.operationContext- Operation context.- Returns:
- Operation mapping from Next Step operation to PowerAuth 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(String userId, String organizationId, 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(String userId, 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.Response formDataChangedNotification(io.getlime.security.powerauth.lib.dataadapter.model.entity.FormDataChange formDataChange, String userId, 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.Response operationChangedNotification(io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationChange operationChange, String userId, 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(String userId, 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(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, 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(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, String lang, 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(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, 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(String userId, String organizationId, io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext, io.getlime.security.powerauth.lib.dataadapter.model.request.AfsRequestParameters afsRequestParameters, Map<String,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.
-