小编Tar*_*rmo的帖子

RabbitMQ消息签名

我想使用RabbitMQ在多个应用程序之间进行通信,这些应用程序部署在不同的网络上并由不同的人员维护.作为消息(消费者)的接收者,我希望确信消息的发送者(生产者)是他声称的那个人.我能想到的最佳方法是签名和验证这些签名.由于这是我第一次使用RabbitMQ做某事,我对如何实现这一点感到困惑.

消息发送者和接收者是Java应用程序.我决定使用Spring AMQP模板让事情变得更容易.在一个完美的场景中,我想以某种方式拦截消息,当它已经是字节数组/流时,签署此blob并将签名​​附加为消息头.在接收端,我再次想要在反序列化之前拦截消息,从头部对blob验证签名,如果一切正常,则反序列化它.但是我没有在Spring-Rabbit中找到任何方法来做这件事.MessagePostProcessor在Spring-Rabbit中有一个概念,但是当调用它时,消息仍然没有完全序列化.看起来我想象的东西会被某人解决,因为感觉这是一个常见的问题,但是我的研究让我光着头.

目前我AmqpTemplate.convertAndSend用于消息发送和@RabbitListener消息接收.但我并没有被春天困住.我可以使用我喜欢的任何东西.它似乎是一种简单的方法.我正在使用Jackson进行JSON的消息序列化.问题是如何在正确的地方拦截发送和接收.

备份计划是将数据和签名放在正文中并使用包装器将它们联合起来,但这意味着双重序列化并且不像我想要的解决方案那样干净.

那么有没有人有这方面的经验,也许可以建议我如何解决这个问题?

java rabbitmq spring-rabbit spring-rabbitmq

6
推荐指数
1
解决办法
230
查看次数

标签 统计

java ×1

rabbitmq ×1

spring-rabbit ×1

spring-rabbitmq ×1