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.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)
    Send a notification about form data change.
    org.springframework.web.client.RestTemplate getRestTemplate()
    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.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)
    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 DataAdapterClientErrorException
      Lookup 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 DataAdapterClientErrorException
      Perform 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 DataAdapterClientErrorException
      Obtain 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 DataAdapterClientErrorException
      Initialize 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 DataAdapterClientErrorException
      Create 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 DataAdapterClientErrorException
      Verify 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 DataAdapterClientErrorException
      Verify 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 DataAdapterClientErrorException
      Create 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 DataAdapterClientErrorException
      Verify 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 DataAdapterClientErrorException
      Decorate 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 DataAdapterClientErrorException
      Send 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 DataAdapterClientErrorException
      Send 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 DataAdapterClientErrorException
      Initialize 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 DataAdapterClientErrorException
      Create 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 DataAdapterClientErrorException
      Validate 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 DataAdapterClientErrorException
      Save 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 DataAdapterClientErrorException
      Execute 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.