Я зашифровал данные Spring JPA Entity с помощью специального конвертера атрибутов. Я прекрасно работал с одним (по умолчанию) postgres источником данных при весенней загрузке. Теперь, когда я реализовал несколько источников данных, шифрование / дешифрование столбцов сущностей внезапно прекратилось. Понятия не имею, почему конвертер атрибутов не работает в случае нескольких источников данных.
**Error:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.orm.jpa.JpaSystemException: Error attempting to apply AttributeConverter; nested exception is javax.persistence.PersistenceException: Error attempting to apply AttributeConverter**
Sample Entity Class code:
@Entity
@Table(name="users")
@Data
public class User{
@Id
private String id;
@Column(name="u_name")
@Convert(converter = StringEncryptDecryptConverter.class)
private String userName;
@Column(name="u_contact")
@Convert(converter = StringEncryptDecryptConverter.class)
private String contact;
@Column(name = "u_address")
private String address;
}
StringEncryptDecryptConverter Class Code:
<pre><code>
@Converter(autoApply = false)
public class StringEncryptDecryptConverter
extends AbstractEncryptDecryptConverter<String> {
/**
* Default constructor initializes with an instance of the
* {@link CipherMaker} crypto class to get a {@link javax.crypto.Cipher}
* instance
*/
public StringEncryptDecryptConverter() {
this(new CipherMaker());
}
/**
* Constructor
*
* @param cipherMaker
*/
public StringEncryptDecryptConverter(CipherMaker cipherMaker) {
super(cipherMaker);
}
@Override
boolean isNotNullOrEmpty(String attribute) {
return isNotEmpty(attribute);
}
@Override
String convertStringToEntityAttribute(String dbData) {
return dbData;
}
@Override
String convertEntityAttributeToString(String attribute) {
return attribute;
}
}
application.properties :
spring.datasource.jdbcUrl=jdbc:postgresql://127.0.0.1:5432/test_Db
spring.datasource.username=postgres
spring.datasource.password=root
spring.another-datasource.jdbcUrl=jdbc:postgresql://127.0.0.1:5432/another_db
spring.another-datasource.username=postgres
spring.another-datasource.password=root*
Any help would be appreciated.
Thanks.