如何从 .properties 文件中读取属性

How to read properties from .properties file in Mule

我正在尝试使用 Mule Credentials Vault 安全功能。 我创建了 .properties 文件,安全性 属性 占位符并定义了密钥和加密算法。 现在我想在 return HTTP 响应时使用文件中的一些属性。

我有文件 src/main/resources/data.properties,其中包含例如:

在我的 canvas 配置下 XML 我添加了:

<secure-property-placeholder:config name="Secure_Property_Placeholder" key="24681357" location="data.properties" doc:name="Secure Property Placeholder" encryptionAlgorithm="DES"/>

<set-variable variableName="card.number" value="${number}" />

在我的 canvas 中,我有构建 xml 'Create XML response based on User' 的消息流。设置中的值为:

这行不通。我得到的错误是:

-> org.mule.module.launcher.DeploymentInitException: IllegalArgumentException: Could not resolve placeholder 'key' in string value "${key}"

-> Caused by: org.mule.api.lifecycle.InitialisationException: Invalid bean definition with name 'org.mule.autogen.bean.13' defined in null: Could not resolve placeholder 'key' in string value "${key}"; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'key' in string value "${key}"

-> Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'key' in string value "${key}"

有谁知道如何从 .properties 文件(凭据保险库)中读取属性?然后在我的流程中使用它?

谢谢, 可人

恐怕你做不到。 Mule Credentials Vault 是一项企业功能,因此通常您无法访问源代码,除非您是 MuleSoft 客户。

即使您是客户,您使用的 api 也会不受支持。我建议手动创建一个自定义 java 组件来使用您的代码和 Jasypt(不是作为 属性 占位符而是作为库)。

如果您是客户(我猜您知道您正在使用凭据库),另一种选择是联系官方支持,以便他们为您处理。

如果您只想获取 属性 number 的值并将其添加到 XML 中,您可以使用 .properties 中的 ${number} 。无需在 Configuration XML.

中定义任何其他变量
<set-payload value="&lt;user&gt;&lt;name&gt;Royal Bank of Canada&lt;/name&gt;&lt;id&gt;Royal_Bank_Of_Canada&lt;/id&gt;&lt;cc&gt;&lt;company&gt;&gt;Visa&lt;/company&gt;&lt;number&gt;${number}&lt;/number&gt;&lt;secret&gt;123&lt;/secret&gt;&lt;/cc&gt;&lt;/user&gt;" doc:name="Set Payload"/>

但是请注意,属性 占位符在启动时已解析,因此您将无法根据某些用户输入动态检索 属性。为此,您必须进行一些 Java 编码。 This SO post gives you some hints on how this can be achieved. Based on those answers I have created a simple example 关于如何使用一个非常简单的帮助程序 bean 完成此操作。

属性 占位符用于在启动时解析,因此您将无法根据某些用户输入动态检索 属性。

在 MEL 的 .properties 中使用 ${属性Name} 访问特定的 属性

您可以从 Dataweave 中阅读它,如下所示 p('variablename') 其中变量名在 属性 文件中定义,例如:变量名 = 15