Migration from 1.3.x to 1.4.x

This guide contains instructions for migration from PowerAuth Enrollment Server version 1.3.x to version 1.4.0.

Since version 1.4.0, there are two war files available.

  • enrollment-server.war - Original Enrollment server functionality.
  • enrollment-server-onboarding.war - Onboarding functionality using government-identification and user verifications.

Onboarding Server

The Onboarding Server has been introduced as a separate war module, see Documentation for Onboarding Server and Onboarding Server Database Structure This module is optional.

Onboarding Server Configuration

If you want to integrate Onboarding Server, add this dependency to your Enrollment Server.

<dependency>
    <groupId>com.wultra.security</groupId>
    <artifactId>enrollment-server-onboarding-common</artifactId>
    <version>${project.version}</version>
</dependency>

And configuration of the common beans, for example.

@Configuration
@EnableJpaRepositories(basePackages = {
        "com.wultra.app.enrollmentserver.database", // not to override component scan for enrollment-server
        "com.wultra.app.onboardingserver.common.database" // dependencies from enrollment-server-onboarding common
})
@EntityScan(basePackages = {
        "com.wultra.app.enrollmentserver.database.entity", // not to override component scan for enrollment-server
        "com.wultra.app.onboardingserver.common.database.entity" // dependencies from enrollment-server-onboarding common
})
public class OnboardingComponentsConfiguration {

    /**
     * Register onboarding service bean.
     *
     * @param onboardingProcessRepository onboarding process repository
     * @param auditService Audit service.
     * @return onboarding service bean
     */
    @Bean
    public OnboardingService onboardingService(final OnboardingProcessRepository onboardingProcessRepository, final AuditService auditService) {
        return new CommonOnboardingService(onboardingProcessRepository, auditService);
    }

    /**
     * Register otp service bean.
     *
     * @param onboardingOtpRepository onboarding otp repository
     * @param onboardingProcessRepository onboarding process repository
     * @param identityVerificationRepository Identity verification repository.
     * @param onboardingConfig onboarding config
     * @param auditService Audit service.
     * @return otp service bean
     */
    @Bean
    public OtpService otpService(
            final OnboardingOtpRepository onboardingOtpRepository,
            final OnboardingProcessRepository onboardingProcessRepository,
            final IdentityVerificationRepository identityVerificationRepository,
            final CommonOnboardingConfig onboardingConfig,
            final OnboardingProcessLimitService processLimitService,
            final IdentityVerificationLimitService identityVerificationLimitService,
            final AuditService auditService) {

        return new CommonOtpService(onboardingOtpRepository, onboardingProcessRepository, identityVerificationRepository, onboardingConfig, processLimitService, identityVerificationLimitService, auditService);
    }

    /**
     * Register onboarding config bean.
     *
     * @return onboarding config bean
     */
    @Bean
    public CommonOnboardingConfig onboardingConfig() {
        return new CommonOnboardingConfig();
    }

    /**
     * Register process limit service.
     * @param config Common onboarding process configuration.
     * @param onboardingProcessRepository Onboarding process repository.
     * @param auditService Audit service.
     * @return Onboarding process limit service.
     */
    @Bean
    public OnboardingProcessLimitService processLimitService(
            final CommonOnboardingConfig config,
            final OnboardingProcessRepository onboardingProcessRepository,
            final AuditService auditService) {

        return new OnboardingProcessLimitService(config, onboardingProcessRepository, auditService);
    }

    /**
     * Register identity verification limit service.
     * @param identityVerificationRepository Identity verification repository.
     * @param documentVerificationRepository Document verification repository.
     * @param config Onboarding configuration.
     * @param onboardingProcessRepository Onboarding process repository.
     * @param activationFlagService Activation flag service.
     * @param onboardingProcessLimitService Onboarding process limit service.
     * @param auditService Audit service.
     * @return Identity verification limit service.
     */
    @Bean
    public IdentityVerificationLimitService identityVerificationLimitService(
            final IdentityVerificationRepository identityVerificationRepository,
            final DocumentVerificationRepository documentVerificationRepository,
            final CommonOnboardingConfig config,
            final OnboardingProcessRepository onboardingProcessRepository,
            final ActivationFlagService activationFlagService,
            final OnboardingProcessLimitService onboardingProcessLimitService,
            final AuditService auditService) {

        return new IdentityVerificationLimitService(identityVerificationRepository, documentVerificationRepository, config, onboardingProcessRepository, activationFlagService, onboardingProcessLimitService, auditService);
    }

    /**
     * Register activation flag service.
     * @param powerAuthClient PowerAuth client.
     * @param httpCustomizationService HTTP customization service.
     * @return Activation flag service.
     */
    @Bean
    public ActivationFlagService activationFlagService(PowerAuthClient powerAuthClient, HttpCustomizationService httpCustomizationService) {
        return new ActivationFlagService(powerAuthClient, httpCustomizationService);
    }

    /**
     * Register activation otp service bean.
     *
     * @param otpService otp service
     * @return activation otp service bean
     */
    @Bean
    public ActivationOtpService activationOtpService(final OtpService otpService) {
        return new ActivationOtpService(otpService);
    }

    /**
     * Register activation process service bean.
     *
     * @param onboardingService onboading service
     * @return activation process service bean
     */
    @Bean
    public ActivationProcessService activationProcessService(final OnboardingService onboardingService) {
        return new ActivationProcessService(onboardingService);
    }

    /**
     * Register activation exception handler for onboarding.
     * @return Activation exception handler.
     */
    @Bean
    @Order(Ordered.HIGHEST_PRECEDENCE)
    public ActivationExceptionHandler activationExceptionHandler(){
        return new ActivationExceptionHandler();
    }

    /**
     * Register audit service.
     *
     * @param audit Audit.
     * @return Audit service.
     */
    @Bean
    public AuditService auditService(final Audit audit) {
        return new AuditService(audit);
    }
}

Database Changes

Operation Template

A new column ui has been added to the table es_operation_template.

PostgreSQL

ALTER TABLE es_operation_template
    ADD COLUMN ui TEXT;

Oracle

ALTER TABLE es_operation_template
    ADD ui CLOB;

MySQL

ALTER TABLE es_operation_template
    ADD COLUMN ui TEXT;

Inbox

Inbox functionality is turned on by default if PowerAuth Push Server is running. It could be turned off by setting property enrollment-server.inbox.enabled to false.

Last updated on Jan 12, 2023 (10:25) Edit on Github Send Feedback
Search

1.4.x

Enrollment Server