我们使用 Spring 及其内置的 MappingJacksonHttpMessageConverter 生成大量 JSON 对象。都很棒。
但现在我想用html 转义我的(任何类型的)对象的字符串值,以防止 XSS。
那么,我该如何解决这个问题呢?我首先想到我可以编写一个自定义对象映射器并将其放入 MappkingJacksonHttpMessageConverter。但是,writeValue 需要一个对象,我不希望这样,我想让它的字段进行迭代。我敢打赌,杰克逊转换器也需要这样做,而不是我自己这样做。所以我想影响那部分。
现在我得到了一个 SerializerProvider 接口。标准实现(StdSerializerProvider)被 ObjectMapper 调用。所以我想在某个地方覆盖/影响负责设置值的方法。
那可能吗?据我所知,很难扩展。我无法覆盖 StdSerializerProvider 来覆盖 ObjectMapper 使用的方法。也许我需要覆盖另一个?
或者,也许这是完全错误的,我需要从一个完全不同的角度来处理它?
有什么想法吗?
哦,顺便说一句,我自己实现 SerializerProvider 并创建一个委托给 StdSerializerProvider 的合成可能是可能的,但我宁愿不这样做。(我自己在实例化 StdSerializerProvider 时已经遇到问题)。
任何想法表示赞赏!