【Mybatis Plus高级使用】分页查询实体类字段自动加解密

针对项目安全性要求,对某些敏感字段数据需要进行加密存储,通过mybatis plus和自定义注解方式来完成对敏感字段的自动加解密

自定义注解

在需要加解密的实体类型注解@EncryptionClass,在需要加解密的字段上注解@EncryptionField

/**
 * 对实体类打标
 */
@Documented
@Inherited
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface EncryptionClass {
}

/**
 * 对实体类的字段打标
 */
@Documented
@Inherited
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface EncryptionField {
    SecretMode mode() default SecretMode.AES;
}

自定义mybatis拦截器

入库或更新时拦截器

ParamInterceptor.java
在这里插入图片描述
注意:

1、@Intercepts注解。method为update代表插入和更新时执行

@Intercepts({
        @Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class})
})

2、@ConditionalOnProperty注解。根据yml文件中entity.encrypthavingValue值进行比较,一致则拦截器起效,不一致则拦截器不起效

@ConditionalOnProperty(prefix = "entity", value = "encrypt", havingValue = "true")
查询时拦截器

ResultInterceptor.java

注意点同入库拦截器

加解密工具类

SensitiveUtils.java

更多相关内容请移步个人博客主页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值