我已经在元数据中添加了路由和JWT令牌,但是在将令牌从RSocket客户端传递到RSocket服务器时,它在令牌中添加了额外的字节。
客户端代码----------
ByteBuf simpleAuthentication = AuthMetadataCodec.encodeBearerMetadata(ByteBufAllocator.DEFAULT,
TenantContext.getCurrentToken().toCharArray());
CompositeMetadataCodec.encodeAndAddMetadata(metadata, ByteBufAllocator.DEFAULT,
"message/x.rsocket.authentication.bearer.v0", simpleAuthentication.asByteBuf());
尝试声明时服务器端令牌:
"token" : "�eyJhbGciOiJIUzUxMiJ9.xyz.demo",
正如您所看到的,当令牌开始时,有一些额外的字符。
有人知道如何使用SpringBoot和JAVA在RSocket客户端中传递元数据中的JWT令牌吗?
3条答案
按热度按时间qxgroojn1#
可以粘贴你的一个完整的演示。
vaj7vani2#
您需要使用 WellKnownMimeType.MESSAGE_RSOCKET_AUTHENTICATION,因为不推荐使用BearerTokenMetadata.BEARER_AUTHENTICATION_MIME_TYPE。
RSocketRequesterbean配置可以是:
6ju8rftf3#
Petro Prydorozhnyi的答案的java等价物。重要的是
token
不应该包含Bearer
前缀。