如何为 Mule 4 中的 TLS 上下文设置提供动态 'path'?
How to provide dynamic 'path' for TLS context settings in Mule 4?
对于出站 HTTP 请求,我需要设置密钥库配置。密钥库包含客户端证书。
这是有效的,如果我将路径提供为 ;
${app.home}${tls.keystore.relativepath}${client.ssl.keystore}
这里;
tls.keystore.relativepath
和 client.ssl.keystore properties
在属性文件中定义。
例如:
在属性文件中;
tls.keystore.relativepath=/keystore/
client.ssl.keystore=client_certificate.p12
但我的要求是,
HTTP 请求是一个通用请求,该程序会将请求路由到不同的端点。因此,密钥存储文件在运行时也不同。
例如:
在属性文件中,我将定义;
client.ssl.keystore=client_certificate.p12
client2.ssl.keystore=client2_certificate.p12
为了在运行时确定'client'或'client2'字,我定义了一个变量,它检查请求和保持值作为'client'或client2'。
因此,为了在 TLS context/key 存储配置下定义 'path' 值,我尝试了几种组合。但运气不好。[1,2,3]
${app.home}${tls.keystore.relativepath}++#[p(vars.'app.name' ++'.'++'ssl.keystore')]
keystore/ ++ p(vars.'app.name' ++'.'++'ssl.keystore')
%dw 2.0
输出application/java
keystore/ ++ p(vars.'app.name' ++'.'++'ssl.keystore')
任何人都可以为我提供这个动态路径配置的解决方案吗?
您可以使用以下示例动态引用 属性
%dw 2.0
output application/json
var appName="test-app"
var keystore="client-cert.p12"
var finalProp=appName ++ keystore
---
Mule::p(finalProp)
然而,HTTP 请求者配置 (TLS) 的一部分不考虑动态值,需要引用静态 属性 或硬编码值。因此,您将不得不在流程中求助于多个 HTTP 请求程序组件,并根据客户端类型使用选择路由器进行相应的路由。
对于出站 HTTP 请求,我需要设置密钥库配置。密钥库包含客户端证书。 这是有效的,如果我将路径提供为 ;
${app.home}${tls.keystore.relativepath}${client.ssl.keystore}
这里;
tls.keystore.relativepath
和 client.ssl.keystore properties
在属性文件中定义。
例如: 在属性文件中;
tls.keystore.relativepath=/keystore/
client.ssl.keystore=client_certificate.p12
但我的要求是, HTTP 请求是一个通用请求,该程序会将请求路由到不同的端点。因此,密钥存储文件在运行时也不同。
例如: 在属性文件中,我将定义;
client.ssl.keystore=client_certificate.p12
client2.ssl.keystore=client2_certificate.p12
为了在运行时确定'client'或'client2'字,我定义了一个变量,它检查请求和保持值作为'client'或client2'。
因此,为了在 TLS context/key 存储配置下定义 'path' 值,我尝试了几种组合。但运气不好。[1,2,3]
${app.home}${tls.keystore.relativepath}++#[p(vars.'app.name' ++'.'++'ssl.keystore')]
keystore/ ++ p(vars.'app.name' ++'.'++'ssl.keystore')
%dw 2.0
输出application/java
keystore/ ++ p(vars.'app.name' ++'.'++'ssl.keystore')
任何人都可以为我提供这个动态路径配置的解决方案吗?
您可以使用以下示例动态引用 属性
%dw 2.0
output application/json
var appName="test-app"
var keystore="client-cert.p12"
var finalProp=appName ++ keystore
---
Mule::p(finalProp)
然而,HTTP 请求者配置 (TLS) 的一部分不考虑动态值,需要引用静态 属性 或硬编码值。因此,您将不得不在流程中求助于多个 HTTP 请求程序组件,并根据客户端类型使用选择路由器进行相应的路由。