簡體   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