
org.onetwo.dbm.mapping.converter.EncryptFieldValueConverter Maven / Gradle / Ivy
package org.onetwo.dbm.mapping.converter;
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.onetwo.common.utils.StringUtils;
import org.onetwo.dbm.exception.DbmException;
import org.onetwo.dbm.mapping.DbmFieldValueConverter;
import org.onetwo.dbm.mapping.DbmMappedField;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
/**
* @author wayshall
*
*/
@Order(Ordered.LOWEST_PRECEDENCE)
public class EncryptFieldValueConverter implements DbmFieldValueConverter {
private StandardPBEStringEncryptor encryptor;
public EncryptFieldValueConverter() {
super();
}
@Override
public Object forJava(DbmMappedField field, Object fieldValue) {
if (fieldValue==null || StringUtils.isBlank(fieldValue.toString())) {
return fieldValue;
}
String decrypted = encryptor.decrypt(fieldValue.toString());
return decrypted;
}
@Override
public Object forStore(DbmMappedField field, Object fieldValue) {
if (field.getColumnType()!=String.class) {
throw new DbmException("the encrypt field[" + field.getName() + "] must be String type!");
}
if (fieldValue==null) {
return fieldValue;
}
String encrypted = encryptor.encrypt(fieldValue.toString());
return encrypted;
}
public void setEncryptor(StandardPBEStringEncryptor encryptor) {
this.encryptor = encryptor;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy