From ff3fb03f2936e85a50b00431a57390864e440232 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 28 Nov 2022 12:13:22 +0200 Subject: [PATCH] RED-5563 - SMTP migration --- .../persistence/SMTPConfigurationService.java | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/SMTPConfigurationService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/SMTPConfigurationService.java index 19a24bfd9..bc0d03a56 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/SMTPConfigurationService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/SMTPConfigurationService.java @@ -40,16 +40,22 @@ public class SMTPConfigurationService { @Transactional public void encryptPasswordIfNecessary() { - var smtpConfiguration = getConfiguration(); - try { - // this makes the migration idempotent, since an exception will be thrown if the password can't be decrypted - // this prevents double encryption if the migration runs more than once + var smtpConfigurationOptional = smtpRepository.findById(SMTPConfigurationEntity.ID); - encryptionDecryptionService.decrypt(smtpConfiguration.getPassword()); - log.info("SMTP Password for id {} is already encrypted", smtpConfiguration.getId()); - } catch (Exception e) { - log.info("Encrypting SMTP Password for id {}", smtpConfiguration.getId()); - smtpConfiguration.setPassword(encryptionDecryptionService.encrypt(smtpConfiguration.getPassword())); + if(smtpConfigurationOptional.isPresent()) { + var smtpConfiguration = smtpConfigurationOptional.get(); + try { + // this makes the migration idempotent, since an exception will be thrown if the password can't be decrypted + // this prevents double encryption if the migration runs more than once + + encryptionDecryptionService.decrypt(smtpConfiguration.getPassword()); + log.info("SMTP Password for id {} is already encrypted", smtpConfiguration.getId()); + } catch (Exception e) { + log.info("Encrypting SMTP Password for id {}", smtpConfiguration.getId()); + smtpConfiguration.setPassword(encryptionDecryptionService.encrypt(smtpConfiguration.getPassword())); + } + }else{ + log.info("NO SMPT Configuration present for migration!"); } }