我正在使用 grpc-java 进行 PoC,此测试的主要目标之一是验证元数据/消息的完整性;基本上,我试图将一些调用属性(用户、时间、traceId 等)和发送到服务器的数据散列到作为元数据发送的单个 JWT token 中。
我面临的问题是,使用 ClientInterceptor 和 SimpleForwardingClientCall 的“sendMessage”方法(从那里我可以获得消息哈希值)是在元数据可用的“start”方法之后调用的......并且似乎通过设计元数据是在执行“start”方法时发送的,因此我必须计算在此之前发送的数据的哈希值...
有人做过这样的事吗?我是否缺少某些功能?
感谢您的帮助或建议...
最佳答案
您可以延迟调用 next.newCall()
或调用 clientCall.start()
,直到调用拦截器的 sendMessage()
。您需要将值保存在字段中,然后在调用 sendMessage()
时回放它们。
关于java - 在 ClientInterceptor 上使用 grpc-java 在元数据中包含消息哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51544736/