`
ben_hu
  • 浏览: 92065 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

使用自定义Spring-MessageConverter,加密Response

 
阅读更多

实际项目中,后台接口返回的内容是要加密的

(我们可以在每个接口返回前手动加密、返回,这样总觉得不爽微笑

 

Spring的MessageConverter正是用于转换数据(输入、输出)的

所以,可以通过自定义一个MessageConverter,比较简洁地实现这个需求。

 

1. 为了最小的影响框架的功能,复用Jackson的Converter

【AbstractJackson2HttpMessageConverter】

【MappingJackson2HttpMessageConverter】

其中,【 protected void writeInternal】是往Response输出内容。

 

2. 修改

AbstractJackson2HttpMessageConverter#writeInternal

 

// this.objectMapper.writeValue(generator, result);
String str = objectMapper.writeValueAsString(result); // ① 转换成JSON格式字符串
String str2 = encrypt(str)                            // ② 加密返回值
outputMessage.getBody().write(str.getBytes());        // ③ 输出到Response
 

 

说明

1. 用Spring框架的话,返回值自然是一个统一的ResultVO

2. 基于上面这点,从抽象类【AbstractJackson2HttpMessageConverter】冲去掉了【implements GenericHttpMessageConverter<Object>】,

顺次删除【canWrite】【canRead】等。

 

3. 修改AbstractJackson2HttpMessageConverter#supports

@Override
protected boolean supports(Class<?> clazz) {
	return ResultVO.class.isAssignableFrom(clazz);
}

 

 

 

 

分享到:
评论

相关推荐

    spring-cloud-stream-rabbit

    MultipleOutputsWithConditionsService:另一个有条件路由的自定义处理器,但是使用基于注释的标头过滤器进行声明性路由,而不是对条件进行编程检查。 请注意,使用此版本的SCS无法​​有条件地检查有效载荷。 ...

    excel-parser-spring-boot-starter:Excel解析器

    标头名称的多语言处理可通过MessageConverter函数进行。 它提供元数据缓存功能以启用快速解析。 有关其他各种功能和用法,请参阅页面。 兼容性 Spring Boot 2.2或更高版本 释放 最新版本:1.2.1 热门使用 这是...

    Spring整合JMS(三)——MessageConverter介绍

    NULL 博文链接:https://elim.iteye.com/blog/1900937

    基于springboot集成mybatis、durid和自定义消息转换项目

    基于springboot集成mybatis、durid和自定义消息转换项目,实现阿里巴巴的durid对数据库连接池的设置和自定义消息转换的messageconverter,能够快速开发自己的应用。

    自定义日志脱敏组件,简单3 步完成 Spring Boot 的日志脱敏

    对于日志脱敏的方式有很多,常见的有①使用conversionRule标签,继承MessageConverter②书写一个脱敏工具类,在打印日志的时候对特定特字段进行脱敏返回。 两种方式各有优缺点:第一种方式需要修改代码,不符合开闭...

    springmvc log4j2 logback 注解 jackson 日志脱敏实现源码

    几乎是网上 能找到的 日志脱敏的所有实现 1、基于正则表达式的 日志脱敏实现 ,扩展logback 、log4j 2、springmvc 返回报文脱敏。 3、基于注解方式的脱敏。 大家选择使用。

    zxs:洲鑫系统

    算法原始分析:code-analysis设计模式手写mybatis手写spring,springMVC并发:并发螺纹池分布式:Distributed 生物,蔚来净值rmijdk:jdk分析反射安全杰姆克斯函数接口片断探究React性-x:React性-x API使用微服务:...

    SPRING API 2.0.CHM

    MessageConverter MessageCreator MessageEOFException MessageFormatException MessageListenerAdapter MessageListenerAdapter102 MessageNotReadableException MessageNotWriteableException ...

    JMS入门Demo

    其实在使用MessageListenerAdapter时,Spring默认为我们提供了SimpleMessageConverter转换器.. 事务(无代码): 在Spring整合JMS的应用中,如果我们要进行本地的事务管理的话非常简单,只需要在定义对应的消息监听...

    lucene-test

    相当于注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean, 配置一些messageconverter。即解决了@Controller注解的使用前提配置。

    annotation.txt

    配置一些messageconverter。即解决了@Controller注解的使用前提配置&lt;context:annotation-config/&gt;是对包进行扫描,实现注释驱动Bean定义,同时将bean自动注入容器中使用。即解决了@Controller标识的类的bean的注入和...

    vizix-kafka-connect-rabbitmq

    在Eclipse中导入项目 确保bin / io / confluent / connect / rabbitmq / MessageConverter.class已编译 运行path.sh以在out / kafka-connect-rabbitmq-1.0.0-preview_patch.jar中生成修补的lib

Global site tag (gtag.js) - Google Analytics