如何在 SCDF httpclient(或 http-request)应用程序中使用 Kafka header 创建 HTTP header?
How to create HTTP header with Kafka header in SCDF httpclient (or http-request) app?
我正在尝试创建这样的测试流:time | oauth-processor | httpclient | log
。
在这个流中,我的 oauth-processor 获取一个令牌并将其存储在 kafka 消息 header 中。这个效果很好,我收到一条消息:
[
payload=03/19/21 13:00:15,
headers={
... standard-headers ...,
...
OAuth={
TokenType=bearer,
ExpiresIn=480,
AccessToken=myEncodedToken
}
}
]
然后我想将令牌放在 HTTP header 中进行身份验证,如下所示:
{
'Content-Type':'application/json',
'Authorization':'bearer myEncodedToken'
}
这是我在命令行中使用 header-expression 属性 尝试的内容:
--headers-expression={'Content-Type':'application/json', 'Authorization':#jsonPath(headers, \"$.OAuth.TokenType\").concat(\" \").concat(#jsonPath(headers, \"$.OAuth.AccessToken\"))}
但我无法使用 SpEL 创建有效的 JSON 字符串。
入门应用程序的文档很差,至于 SCDF
中的 SpEL(尤其是当我们必须转义字符时),我在互联网上找不到任何有用的东西
如果有任何帮助,我将不胜感激。谢谢
我找到了一个使用带有此行的属性文件的解决方案:
app.httpclient.headers-expression={'Content-Type':'application/json','Authorization' : headers.OAuth.Authorization}
SCDF 中的 SpEL 非常混乱...
有时需要使用#jsonPath,有时不需要...
不确定,但似乎逗号也破坏了命令行中的表达式
我正在尝试创建这样的测试流:time | oauth-processor | httpclient | log
。
在这个流中,我的 oauth-processor 获取一个令牌并将其存储在 kafka 消息 header 中。这个效果很好,我收到一条消息:
[
payload=03/19/21 13:00:15,
headers={
... standard-headers ...,
...
OAuth={
TokenType=bearer,
ExpiresIn=480,
AccessToken=myEncodedToken
}
}
]
然后我想将令牌放在 HTTP header 中进行身份验证,如下所示:
{
'Content-Type':'application/json',
'Authorization':'bearer myEncodedToken'
}
这是我在命令行中使用 header-expression 属性 尝试的内容:
--headers-expression={'Content-Type':'application/json', 'Authorization':#jsonPath(headers, \"$.OAuth.TokenType\").concat(\" \").concat(#jsonPath(headers, \"$.OAuth.AccessToken\"))}
但我无法使用 SpEL 创建有效的 JSON 字符串。
入门应用程序的文档很差,至于 SCDF
中的 SpEL(尤其是当我们必须转义字符时),我在互联网上找不到任何有用的东西
如果有任何帮助,我将不胜感激。谢谢
我找到了一个使用带有此行的属性文件的解决方案:
app.httpclient.headers-expression={'Content-Type':'application/json','Authorization' : headers.OAuth.Authorization}
SCDF 中的 SpEL 非常混乱...
有时需要使用#jsonPath,有时不需要...
不确定,但似乎逗号也破坏了命令行中的表达式