Apache Camel 从纯文本创建基本身份验证 header
Apache Camel create basic authentication header from plain text
我是骆驼的新手。我有一个工作项目,它以一种格式接收请求,然后将其路由到不同的服务器。作为此路由的一部分,我需要使用用户名和密码的组合来创建身份验证 header。
结果header应该是(我手动生成了base64,现在hard-coded):
<camel:setHeader headerName="Authorization"><camel:simple>Basic YWRtaW46YWRtaW4=</camel:simple></camel:setHeader>
所以,我需要一种方法将纯用户名+密码的组合转换为 base64,并将它们添加到 Camel 配置中。请注意,我的应用程序中没有 Java 代码,只有 XML 代码。
谢谢!
一种可能的解决方案是使用Groovy语言来填充Authorization
header,例如:
.setHeader("Authorization").groovy(myExpr)
据我所知,Groovy 的 GDK 提供了对字符串进行 Base64 编码的方法:
def s = 'userid:password'
String encoded = s.bytes.encodeBase64().toString()
我是骆驼的新手。我有一个工作项目,它以一种格式接收请求,然后将其路由到不同的服务器。作为此路由的一部分,我需要使用用户名和密码的组合来创建身份验证 header。
结果header应该是(我手动生成了base64,现在hard-coded):
<camel:setHeader headerName="Authorization"><camel:simple>Basic YWRtaW46YWRtaW4=</camel:simple></camel:setHeader>
所以,我需要一种方法将纯用户名+密码的组合转换为 base64,并将它们添加到 Camel 配置中。请注意,我的应用程序中没有 Java 代码,只有 XML 代码。
谢谢!
一种可能的解决方案是使用Groovy语言来填充Authorization
header,例如:
.setHeader("Authorization").groovy(myExpr)
据我所知,Groovy 的 GDK 提供了对字符串进行 Base64 编码的方法:
def s = 'userid:password'
String encoded = s.bytes.encodeBase64().toString()