All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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