Spring Boot 返回加密后的 Response
Spring Boot 大约 1091 字ResponseBodyAdvice
实现ResponseBodyAdvice
接口,在supports()
方法中返回true
会进入beforeBodyWrite()
,在beforeBodyWrite()
中对Controller
中返回的对象Object body
进行修改。
下面示例中的Response
为自定义类。
@RestControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
public class ApiResponseBodyAdvice implements ResponseBodyAdvice<Object> {
@Override
public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
return true;
}
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
if (body instanceof Response || body instanceof ProblemDetail) {
return body;
}
body = Response.builder().data(body).build();
return body;
}
}
Filter
在doFilter()
的FilterChain
调用filterChain.doFilter(request, response);
之后再进行对HttpServletResponse
读取流,进行修改。
Interceptor
在postHandle()
或afterCompletion()
方法中读取HttpServletResponse
中的流进行修改。
阅读 501 · 发布于 2023-01-28
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Prometheus+Grafana+jmx_exporter 监控 Java 虚拟机阅读 1522
-
Docker 镜像相关命令阅读 769
-
Java 中 sleep 和 wait 的区别阅读 1214
-
OpenResty 使用 lua-resty-auto-ssl 配置 https 证书阅读 5943
-
Android 混淆 proguard.cfg阅读 3944
-
IDEA TestMe 插件快速生成 Unit Test 单元测试阅读 4717
-
MySQL 字符串拼接阅读 3230
-
Android Glide 加载圆形图片阅读 3342
-
Kubernetes OpenLens 端口转发报错 Error occurred starting port-forward阅读 654
-
Android 小米,魅族 6.0 状态栏不能反色解决方法阅读 3487