Class DataAdapterClient


  • public class DataAdapterClient
    extends 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​(String serviceUrl)
      Create a new client with provided base URL.
      DataAdapterClient​(String serviceUrl, com.fasterxml.jackson.databind.ObjectMapper objectMapper)
      Create a new client with provided base URL and custom object mapper.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      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> createAuthorizationSms​(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 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​(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.ObjectResponse 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)
      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​(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.ObjectResponse 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)
      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.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 Detail

      • DataAdapterClient

        public DataAdapterClient​(String serviceUrl)
        Create a new client with provided base URL.
        Parameters:
        serviceUrl - Base URL.
      • DataAdapterClient

        public DataAdapterClient​(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 Detail

      • 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​(String username,
                                                                                                                                                                   String organizationId,
                                                                                                                                                                   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​(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 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​(String userId,
                                                                                                                                                                        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​(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 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​(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 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​(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 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​(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 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​(String clientId,
                                                                                                                                                                                                       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​(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 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​(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 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,
                                                                                                   String userId,
                                                                                                   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,
                                                                                                    String userId,
                                                                                                    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​(String userId,
                                                                                                                                                                             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​(String userId,
                                                                                                                                                                                 String organizationId,
                                                                                                                                                                                 io.getlime.security.powerauth.lib.dataadapter.model.entity.OperationContext operationContext,
                                                                                                                                                                                 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​(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 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​(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 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​(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 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.