Class AbstractAuthorisationSpi<T,​R extends de.adorsys.ledgers.middleware.api.domain.sca.SCAResponseTO>

    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiPsuAuthorisationResponse> authorisePsu​(@NotNull de.adorsys.psd2.xs2a.spi.domain.SpiContextData contextData, @NotNull String authorisationId, @NotNull de.adorsys.psd2.xs2a.spi.domain.psu.SpiPsuData psuLoginData, String password, T businessObject, @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider)  
      protected String generatePsuMessage​(@NotNull de.adorsys.psd2.xs2a.spi.domain.SpiContextData contextData, @NotNull String authorisationId, @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider, de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiAuthorizationCodeResult> response)  
      protected abstract de.adorsys.psd2.xs2a.core.error.TppMessage getAuthorisePsuFailureMessage​(T businessObject)  
      protected abstract String getBusinessObjectId​(T businessObject)  
      protected de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiAvailableScaMethodsResponse> getForZeroScaMethods​(de.adorsys.ledgers.middleware.api.domain.sca.ScaStatusTO status)  
      protected abstract de.adorsys.ledgers.middleware.api.domain.sca.OpTypeTO getOtpType()  
      protected abstract R getSCAConsentResponse​(@NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider, boolean checkCredentials)  
      protected Optional<List<de.adorsys.ledgers.middleware.api.domain.um.ScaUserDataTO>> getScaMethods​(R sca)  
      protected abstract org.springframework.http.ResponseEntity<R> getSelectMethodResponse​(@NotNull String authenticationMethodId, R sca)  
      protected de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiPsuAuthorisationResponse> getSpiPsuAuthorisationResponseSpiResponseWithError​(feign.FeignException feignException, String devMessage, LedgersErrorCode errorCode)  
      protected abstract de.adorsys.ledgers.middleware.api.domain.sca.SCAResponseTO initiateBusinessObject​(T businessObject, byte[] aspspConsentData)  
      protected abstract boolean isFirstInitiationOfMultilevelSca​(T businessObject, R scaBusinessObjectResponse)  
      protected abstract R mapToScaResponse​(T businessObject, byte[] aspspConsentData, R originalResponse)  
      protected de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiPsuAuthorisationResponse> onSuccessfulAuthorisation​(T businessObject, @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider, de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiPsuAuthorisationResponse> authorisePsu, R scaBusinessObjectResponse)  
      @NotNull de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiAuthorizationCodeResult> requestAuthorisationCode​(@NotNull de.adorsys.psd2.xs2a.spi.domain.SpiContextData contextData, @NotNull String authenticationMethodId, T businessObject, @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider)  
      de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiAvailableScaMethodsResponse> requestAvailableScaMethods​(@NotNull de.adorsys.psd2.xs2a.spi.domain.SpiContextData contextData, T businessObject, @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider)
      This call must follow an init consent request, therefore we are expecting the AspspConsentData object to contain a SCAConsentResponseTO response.
      @NotNull de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiAuthorisationDecoupledScaResponse> startScaDecoupled​(@NotNull de.adorsys.psd2.xs2a.spi.domain.SpiContextData contextData, @NotNull String authorisationId, @Nullable String authenticationMethodId, T businessObject, @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider)  
      protected boolean validateStatuses​(T businessObject, R sca)  
    • Constructor Detail

      • AbstractAuthorisationSpi

        public AbstractAuthorisationSpi()
    • Method Detail

      • authorisePsu

        public de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiPsuAuthorisationResponse> authorisePsu​(@NotNull
                                                                                                                                                            @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiContextData contextData,
                                                                                                                                                            @NotNull
                                                                                                                                                            @NotNull String authorisationId,
                                                                                                                                                            @NotNull
                                                                                                                                                            @NotNull de.adorsys.psd2.xs2a.spi.domain.psu.SpiPsuData psuLoginData,
                                                                                                                                                            String password,
                                                                                                                                                            T businessObject,
                                                                                                                                                            @NotNull
                                                                                                                                                            @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider)
      • requestAvailableScaMethods

        public de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiAvailableScaMethodsResponse> requestAvailableScaMethods​(@NotNull
                                                                                                                                                                             @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiContextData contextData,
                                                                                                                                                                             T businessObject,
                                                                                                                                                                             @NotNull
                                                                                                                                                                             @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider)
        This call must follow an init consent request, therefore we are expecting the AspspConsentData object to contain a SCAConsentResponseTO response.
      • getForZeroScaMethods

        protected de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiAvailableScaMethodsResponse> getForZeroScaMethods​(de.adorsys.ledgers.middleware.api.domain.sca.ScaStatusTO status)
      • getScaMethods

        protected Optional<List<de.adorsys.ledgers.middleware.api.domain.um.ScaUserDataTO>> getScaMethods​(R sca)
      • requestAuthorisationCode

        @NotNull
        public @NotNull de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiAuthorizationCodeResult> requestAuthorisationCode​(@NotNull
                                                                                                                                                                                @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiContextData contextData,
                                                                                                                                                                                @NotNull
                                                                                                                                                                                @NotNull String authenticationMethodId,
                                                                                                                                                                                @NotNull
                                                                                                                                                                                T businessObject,
                                                                                                                                                                                @NotNull
                                                                                                                                                                                @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider)
      • startScaDecoupled

        @NotNull
        public @NotNull de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiAuthorisationDecoupledScaResponse> startScaDecoupled​(@NotNull
                                                                                                                                                                                   @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiContextData contextData,
                                                                                                                                                                                   @NotNull
                                                                                                                                                                                   @NotNull String authorisationId,
                                                                                                                                                                                   @Nullable
                                                                                                                                                                                   @Nullable String authenticationMethodId,
                                                                                                                                                                                   @NotNull
                                                                                                                                                                                   T businessObject,
                                                                                                                                                                                   @NotNull
                                                                                                                                                                                   @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider)
      • getSelectMethodResponse

        protected abstract org.springframework.http.ResponseEntity<R> getSelectMethodResponse​(@NotNull
                                                                                              @NotNull String authenticationMethodId,
                                                                                              R sca)
      • getSCAConsentResponse

        protected abstract R getSCAConsentResponse​(@NotNull
                                                   @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider,
                                                   boolean checkCredentials)
      • getBusinessObjectId

        protected abstract String getBusinessObjectId​(T businessObject)
      • getOtpType

        protected abstract de.adorsys.ledgers.middleware.api.domain.sca.OpTypeTO getOtpType()
      • getAuthorisePsuFailureMessage

        protected abstract de.adorsys.psd2.xs2a.core.error.TppMessage getAuthorisePsuFailureMessage​(T businessObject)
      • initiateBusinessObject

        protected abstract de.adorsys.ledgers.middleware.api.domain.sca.SCAResponseTO initiateBusinessObject​(T businessObject,
                                                                                                             byte[] aspspConsentData)
      • mapToScaResponse

        protected abstract R mapToScaResponse​(T businessObject,
                                              byte[] aspspConsentData,
                                              R originalResponse)
                                       throws IOException
        Throws:
        IOException
      • generatePsuMessage

        protected String generatePsuMessage​(@NotNull
                                            @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiContextData contextData,
                                            @NotNull
                                            @NotNull String authorisationId,
                                            @NotNull
                                            @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider,
                                            de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiAuthorizationCodeResult> response)
      • validateStatuses

        protected boolean validateStatuses​(T businessObject,
                                           R sca)
      • isFirstInitiationOfMultilevelSca

        protected abstract boolean isFirstInitiationOfMultilevelSca​(T businessObject,
                                                                    R scaBusinessObjectResponse)
      • onSuccessfulAuthorisation

        protected de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiPsuAuthorisationResponse> onSuccessfulAuthorisation​(T businessObject,
                                                                                                                                                                            @NotNull
                                                                                                                                                                            @NotNull de.adorsys.psd2.xs2a.spi.domain.SpiAspspConsentDataProvider aspspConsentDataProvider,
                                                                                                                                                                            de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiPsuAuthorisationResponse> authorisePsu,
                                                                                                                                                                            R scaBusinessObjectResponse)
      • getSpiPsuAuthorisationResponseSpiResponseWithError

        protected de.adorsys.psd2.xs2a.spi.domain.response.SpiResponse<de.adorsys.psd2.xs2a.spi.domain.authorisation.SpiPsuAuthorisationResponse> getSpiPsuAuthorisationResponseSpiResponseWithError​(feign.FeignException feignException,
                                                                                                                                                                                                     String devMessage,
                                                                                                                                                                                                     LedgersErrorCode errorCode)