package com.sequenceiq.cloudbreak.conf; import javax.annotation.PostConstruct; import javax.inject.Inject; import org.jasypt.encryption.pbe.PBEStringCleanablePasswordEncryptor; import org.jasypt.encryption.pbe.PBEStringEncryptor; import org.jasypt.exceptions.EncryptionOperationNotPossibleException; import org.jasypt.hibernate4.encryptor.HibernatePBEEncryptorRegistry; import org.springframework.context.annotation.Configuration; @Configuration public class EncryptedStringConfig { @Inject private PBEStringCleanablePasswordEncryptor encryptor; @PostConstruct public void register() { HibernatePBEEncryptorRegistry registry = HibernatePBEEncryptorRegistry.getInstance(); registry.registerPBEStringEncryptor("hibernateStringEncryptor", new PBEStringEncryptor() { @Override public String encrypt(String message) { return encryptor.encrypt(message); } @Override public String decrypt(String encryptedMessage) { try { return encryptor.decrypt(encryptedMessage); } catch (EncryptionOperationNotPossibleException e) { return encryptedMessage; } } @Override public void setPassword(String password) { encryptor.setPassword(password); } }); } }