相关文章推荐
不开心的金针菇  ·  锁定或删除RDS实例的账号_云数据库 ...·  1 月前    · 
温暖的弓箭  ·  std::map.find()崩溃怪事-阿里 ...·  2 周前    · 
坏坏的红茶  ·  图计算服务GraphCompute_图数据管 ...·  2 周前    · 
睿智的甜瓜  ·  pandas ...·  1 周前    · 
慈祥的针织衫  ·  C#/.NET/.NET ...·  3 天前    · 
慈祥的萝卜  ·  关于 Python3 ...·  11 月前    · 
焦虑的单车  ·  javascript - Inherite ...·  1 年前    · 
有爱心的回锅肉  ·  嵌合抗原受体 T细胞治疗血液系统恶性肿瘤研究 ...·  1 年前    · 
活泼的楼梯  ·  python获取json数据中某个字段 ...·  1 年前    · 
健壮的山寨机  ·  google chrome - ...·  1 年前    · 
Code  ›  【JAVA】反射获取对象/LIST中对象属性-阿里云开发者社区
object 云计算 list 阿里
https://developer.aliyun.com/article/1248834
唠叨的豆芽
1 年前
产品 解决方案 文档与社区 免费试用 定价 云市场 合作伙伴 支持与服务 了解阿里云
备案 控制台 登录/注册
开发者社区
首页
探索云世界
新手上云 云上应用构建 云上数据管理 云上探索人工智能
云计算 弹性计算 无影 存储 网络 倚天
云原生 容器 serverless 中间件 微服务 可观测 消息队列
数据库 关系型数据库 NoSQL数据库 数据仓库 数据管理工具 PolarDB开源 向量数据库

热门

Modelscope模型即服务 弹性计算 云原生 数据库 物联网 云效DevOps 龙蜥操作系统 平头哥 钉钉开放平台
大数据 大数据计算 实时数仓Hologres 实时计算Flink E-MapReduce DataWorks Elasticsearch 机器学习平台PAI 智能搜索推荐
人工智能 机器学习平台PAI 视觉智能开放平台 智能语音交互 自然语言处理 多模态模型 pythonsdk 通用模型
开发与运维 云效DevOps 钉钉宜搭 支持服务 镜像站 码上公益
问产品
动手实践
考认证
TIANCHI大赛
活动广场
任务中心 飞天Club技术沙龙 训练营 话题 开发者评测 乘风者计划 阿里云MVP 直播
下载
镜像站 技术资料 插件
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

背景


照着这篇文章 Springboot敏感字段脱敏 敲了一下例子,然后有一些需要注意的地方,这里记录一下。


代码


首先是需要引入的依赖项,如下:


    implementation 'org.assertj:assertj-core:3.21.0'
    implementation 'org.springframework:spring-aspects:5.3.13'
    implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.4'
    implementation 'com.alibaba:fastjson:1.2.78'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.0'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    implementation 'org.springframework:spring-aop:5.3.14'





    


配置文件里还需要配置一下:


jasypt.encryptor.password: 71144850f4fb4cc55fc0ee6935badddf


然后其他代码看原博客就可以。


改进


这里主要写一下,改动了的地方,也就是EncryptHandler的handler方法,因为这个handler方法这能处理参数或者返回值为具体对象,也就是 UserVo 的情况,处理不了 List<UserVo> 的情况,下面直接上上代码:


private Object handler(Object obj, EncryptConstant type) throws IllegalAccessException {
        if (Objects.isNull(obj)) {
            return null;
        //判断是否是list
        Class cls2 = obj.getClass();
        if (cls2.isAssignableFrom(ArrayList.class)
                ||cls2.isAssignableFrom(List.class)
                ||cls2.isAssignableFrom(LinkedList.class)){
            List<Object> list= (List<Object>) obj;
            list.forEach(object->{
                try {
                    processObj(object,type);
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
        }else {
            processObj(obj,type);
        return obj;
    private void processObj(Object obj, EncryptConstant type)  throws IllegalAccessException {
        Field[] fields = obj.getClass().getDeclaredFields();
        for (Field field : fields) {
            boolean hasSecureField = field.isAnnotationPresent(EncryptField.class);
            if (hasSecureField) {
                field.setAccessible(true);
                String realValue = (String) field.get(obj);
                String value;
                if (DECRYPT.equals(type)) {
                    value = stringEncryptor.decrypt(realValue);
                } else {
                    value = stringEncryptor.encrypt(realValue);
                field.set(obj, value);
 
推荐文章
不开心的金针菇  ·  锁定或删除RDS实例的账号_云数据库 RDS(RDS)-阿里云帮助中心
1 月前
温暖的弓箭  ·  std::map.find()崩溃怪事-阿里云开发者社区
2 周前
坏坏的红茶  ·  图计算服务GraphCompute_图数据管理分析_图应用_大数据-阿里云
2 周前
睿智的甜瓜  ·  pandas 数据循环修改列后保存为csv文件-阿里云开发者社区
1 周前
慈祥的针织衫  ·  C#/.NET/.NET Core优秀项目和框架2023年12月简报-阿里云开发者社区
3 天前
慈祥的萝卜  ·  关于 Python3 ThreadPoolExecutor 的队列大小-CSDN博客
11 月前
焦虑的单车  ·  javascript - Inherite the background color to use in a linear-gradient - Stack Overflow
1 年前
有爱心的回锅肉  ·  嵌合抗原受体 T细胞治疗血液系统恶性肿瘤研究进展 - PMC
1 年前
活泼的楼梯  ·  python获取json数据中某个字段 python json获取指定key的value_卡哇伊的技术博客_51CTO博客
1 年前
健壮的山寨机  ·  google chrome - Flutter: memory access out of bounds - Stack Overflow
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号