我想在Quarkus中序列化后添加一个拦截器(使用jsonb和resteasynotreactive)。
我知道如何实现ContainerResponseFilter
,但是ContainerResponseContext
包含了在序列化之前返回的 * 实体*(即Java对象),这不是我想要的。我的拦截器正在加密(使用自定义加密实用程序)序列化的JSON字符串,这意味着拦截器必须在序列化后运行。
我知道我可能会手动序列化响应,但我更喜欢使用现有的Quarkus工具。
编辑:WriterInterceptor
似乎不起作用,因为它在**序列化发生之前被调用(加密需要在序列化的json字符串上发生)。
2条答案
按热度按时间n53p2ov01#
您要查找的是WriterInterceptor,它允许您拦截作为HTTP响应的一部分返回的数据
sr4lhrrt2#
简单的方法是覆盖jsonb反序列化。
创建一个所有需要加密的pojo都必须继承的接口:
创建一个pojo:
创建资源:
创建jsonb反序列化的覆盖:
并调用资源,例如。http://localhost:8080/hello
输出: