com.ideaaedi.mybatis.data.security.support.PojoCloneable Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mybatis-data-security Show documentation
Show all versions of mybatis-data-security Show documentation
Automatically encrypt and decrypt database data through mybatis-interceptor.
package com.ideaaedi.mybatis.data.security.support;
/**
* 克隆支持
*
*
* 在某些特定的场景(如存在各种缓存的情况)下,我们希望
*
* -
* 入库加密时,加密后的密文不要回写到原来的对象中 —— 因为在某些业务场景下,入库后,后面的程序逻辑还需要取对应的明文值而不是密文值。
*
* -
* 出库解密时,解密后的明文不要回写到原来的对象中 —— 因为在某些业务场景下,出库后,后面的一些程序逻辑需要修改查询出来的对象的属性值,
* 你这里修改后;当别人使用相同的sql查询时,因为某些缓存机制的存在,就可能导致别人查出来的对象就是你现在在操作着的对象,随意这个对象
* 的值比起数据库数据来说,是"失真"了的
*
*
*
*
* @author JustryDeng
* @since 2021/7/18 19:58:14
*/
public interface PojoCloneable> {
/**
* 克隆当前对象
*
* @return (以当前对象)克隆出来的对象
*/
T clonePojo();
}