利用SpringAOP的返回通知处理数据加密返回

embedded/2024/12/19 14:08:27/

项目安全要求把所有返回值做加密处理,利用SpringAOP的返回切面可以简单方便的做到该需求。

java">@Aspect
public class ResponseDataEncryptAspect {private ObjectMapper objectMapper;public ResponseDataEncryptAspect () {this.objectMapper = new ObjectMapper();// 保持空值也被序列化objectMapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);}// 拦截Controller内带@RequestMapper的方法及衍生注解即可@AfterReturning(value = PointCut.CONTROLLER_POINT_CUT, returning = "res")public void jsonDateEncrypt(JoinPoint joinPoint, Object res){// 只处理JsonResult返回值if (res instanceof JsonResult) {JsonResult jsonResult = (JsonResult) res;Object data = jsonResult.getData();if (null != data) {// 把data转成json串,再把json串加密,再替换原来的data,vue拦截到data作全局解密,不影响已绑定的功能。String json = objectMapper.writeValueAsString(data);String cryptResult = ZYCryptUtils.encryptAES(json);// 在全局响应结果里添加一个布尔值,方便前端判断到底是密文还是明文jsonResult.setEncrypt(true);jsonResult.setData(cryptResult);}}}
}

实际效果:

在这里插入图片描述


http://www.ppmy.cn/embedded/147036.html

相关文章

UE5安装Fab插件

今天才知道原来Fab也有类似Quixel Bridge的插件,于是立马就安装上了,这里分享一下安装方法 在Epic客户端 - 库 - Fab Library 搜索 Fab 即可安装Fab插件 然后重启引擎,在插件面板勾选即可 然后在窗口这就有了 引擎左下角也会多出一个Fab图标…

Redis List操作

Redis List操作 1、lPush 在名称为key的list左边(头)添加一个值为value的 元素 $redis->lPush(key, value);2、rPush 在名称为key的list右边(尾)添加一个值为value的 元素 $redis->rPush(key, value);3、lPushx/rPushx 在名…

bean创建源码

去字节面试,直接让人出门左拐:Bean 生命周期都不知道! spring启动创建bean流程 下面就接上了 bean生命周期 doGetBean Object sharedInstance this.getSingleton(beanName); sharedInstance this.getSingleton(beanName, new ObjectF…

从零用java实现 小红书 springboot vue uniapp (5)购物页聊天页

前言 移动端演示 http://8.146.211.120:8081/#/ 前面的文章我们基本完成了个人中心页开发 今天我们具体的去进行实现购物页 聊天页 并且分享我开发时遇到的问题 首先先看效果 商品页 商品数据先用笔记数据 我们对布局整体规划一下 搜索组件 搜索组件是fiexd布局一直在页面…

【每日一题 基础题】[蓝桥杯 2020 省 AB3] 乘法表

[蓝桥杯 2020 省 AB3] 乘法表 乘法表 九九乘法表是学习乘法时必须要掌握的。在不同进制数下,需要不同的乘法表。 例如, 四进制下的乘法表如下所示: 1 * 11 2 * 12 2 * 210 3 * 13 3 * 212 3 * 321 请注意,乘法表中两个数相乘的顺序必须为样例…

自动呼入机器人如何与人工客服进行无缝切换?

自动呼入机器人如何与人工客服进行无缝切换? 原作者:开源呼叫中心FreeIPCC,其Github:https://github.com/lihaiya/freeipcc 自动呼入机器人与人工客服的无缝切换详解 自动呼入机器人与人工客服之间的无缝切换是确保客户体验连续…

0 前言

ArCS作为一个基于Rust的CAD(计算机辅助设计)开源系统,尽管已经有四年未更新,但其设计理念和技术实现仍然具有很高的学习和参考价值。以下是对ArCS项目的进一步分析和解读: 一、项目亮点与技术优势 高效与安全的Rust语…

Dcoker安装nginx,完成反向代理和负载均衡

1. 简介 官网:nginx Nginx是一个高性能的 HTTP 和反向代理 Web 服务器。它的主要功能包括反向代理、负载均衡和动静分离等。正因为 Nginx的这些功能能够为系统带来性能和安全方面的诸多优势,我们在项目部署时需要引入 Nginx组件。接下来我们会逐一向大…