繁体   English   中英

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

[英]How to read properties from .properties file in Mule

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

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

在我的画布中,在配置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}" />

在我的画布中,我具有构建xml“基于用户创建XML响应”的消息流。 设置中的值为:

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

-> 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文件(凭证保险库)中读取属性? 然后在我的流程中使用它?

谢谢,可人

如果只想获取属性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编码。 这样的SO帖子为您提供了一些有关如何实现的提示。 基于这些答案,我创建了一个简单的示例 ,说明如何使用非常简单的辅助bean完成此操作。

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

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

如果您是客户,另一种选择(我想您已经在使用凭据保险库)是与官方支持联系,以便他们为您解决。

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

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

从Dataweave中,您可以按照p('variablename')的说明读取它,其中变量名在属性文件中定义,例如:variablename = 15

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM