2015-10-23 58 views
1

我有一個配置了一些SOAP接口的項目,用於測試我的後端。SOAP-UI - 如何外部化或加密項目中的密碼

爲了能夠傳遞的憑據,我有選擇,要麼到:

  1. 把SOAP頭<soapenv:Header>...</soapenv:Header>包含用戶名和密碼 但在這種情況下,我必須聲明它在所有的請求和它不是動態的憑據變化對配置的不同端點(環境)

  2. 創建我所有的環境Outgoing WS-Security Configurations並在每個InterfaceEndpoint配置相關聯 通過這種方式,它可以輕鬆自動地切換任何端點使用的憑據。 在這種配置中,我還可以定義不生成nonce,其他方式會自動生成它並且服務器不接受它。

現在我有一個小安全問題。我的SOAP-UI位於git存儲庫中,如果我只打開項目xml文件,則可以以明文形式查看我的密碼。

我試圖用Hashed password但:

  1. 服務器不會允許這樣的:它PasswordText格式需要密碼
  2. 我覺得散列base64編碼,那麼不保證

有什麼辦法可以將密碼外化(它們可以存儲在本地明文文件中)或者在project.xml文件中加密?

我在版本5.2.0和用戶界面中使用SOAP-UI開放源碼版本(不是PRO),而不是使用Maven或任何其他工具。

回答

1

您可以使用全局屬性。爲此,您需要首先定義一個外部文件,例如名爲soapuiProperties.txt的文件。

在這個文件中提出兩個屬性:

myProject.username=yourUserName 
myProject.password=yourPassword 

然後配置您的WS-Security配置設置,並設置${myProject.username}作爲用戶名,併爲${myProject.password}密碼(你沒有看到密碼文本,因爲UI字段一個掩碼,但不要擔心,如果你把正確的屬性,然後SOAPUI將其替換爲屬性文件中的正確值)。

enter image description here

最後您對傳遞文件到SOAPUI,所以編輯SOAPUI_HOME\bin\soapui.bat的添加遵循-Dsoapui.properties=soapuiProperties.txtJAVA_OPTS

set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx256m -Dsoapui.properties=soapuiProperties.txt

而這一切,那麼在您應用WSSSettings根據您的要求,您將看到正確的值從屬性文件中獲取。

您可以在SOAPUI文檔here

編輯

在新的版本至少5.2.1似乎更容易看到更多的信息,默認情況下SOAPUI默認配置加載SOAPUI_HOME\bin\soapui.properties。所以在這裏創建這個文件並添加屬性,你做的其餘步驟,但你能避免編輯soapui.bat

希望這有助於

+0

完美的,我確認在5.2.0的soapui.properties文件默認情況下,在發射器還配置(我的是soapui.sh因爲我在Linux下)。我只需要告訴我的同事使用正確的鍵設置soapui.properties文件,這很好。 –