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语言来填充Authorizationheader,例如:

.setHeader("Authorization").groovy(myExpr)

据我所知,Groovy 的 GDK 提供了对字符串进行 Base64 编码的方法:

def s = 'userid:password'
String encoded = s.bytes.encodeBase64().toString()