SOAP-UI-如何在项目中外部化或加密密码

рüф*_*ффп 3 soapui password-protection

我有一个配置了一些SOAP接口以测试后端的项目。

为了能够传输凭据,我可以选择:

  1. 放置一个<soapenv:Header>...</soapenv:Header>包含用户名和密码的soap标头,但是在这种情况下,我必须在所有Request中声明它,并且由于配置的不同终结点(环境)的凭据更改,它不是动态的

  2. Outgoing WS-Security Configurations为我的所有环境创建一个,并将它们Endpoint与每个环境的配置相关联Interface
    。这样,它将轻松,自动地切换凭据,无论使用哪种端点。在此配置中,我还可以定义不生成nonce,它会自动生成它并且服务器不接受它的其他方式。

现在我有一个安全性问题。我的SOAP-UI位于git存储库中,如果我只是打开项目xml文件,则可以看到明文密码。

我尝试使用Hashed password但:

  1. 服务器不允许这样做:它需要输入密码 PasswordText格式
  2. 我认为哈希是base64编码的,然后不安全

有什么方法可以将密码外部化(可以将其存储在本地纯文本文件中)或将其加密在project.xml文件中吗?

我正在版本5.2.0中和从用户界面中使用SOAP-UI开源版本(非PRO),而不是与Maven或任何其他工具一起使用。

alb*_*iff 6

您可以使用全局属性。为此,您需要首先定义一个外部文件,例如一个名为soapuiProperties.txt的文件。

在此文件中放入两个属性:

myProject.username=yourUserName
myProject.password=yourPassword
Run Code Online (Sandbox Code Playgroud)

然后配置您的WS-Security配置设置,并设置${myProject.username}为用户名和${myProject.password}密码(您不会看到密码文本,因为UI字段带有掩码,但是请不要担心是否正确放置了该属性,然后SOAPUI将其替换为正确的属性属性文件中的值)。

在此处输入图片说明

最后,您对传递文件到SOAPUI,所以编辑SOAPUI_HOME\bin\soapui.bat的后续补充-Dsoapui.properties=soapuiProperties.txtJAVA_OPTS

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

就是这样,然后当您将WSSSettings请求应用于请求时,您将看到正确的值从属性文件中获取。

您可以在这里的 SOAPUI文档中查看更多信息。

编辑

在新版本中,至少使用5.2.1似乎更容易,默认情况下,SOAPUI配置为SOAPUI_HOME\bin\soapui.properties默认加载。因此,请创建此文件并在此处添加属性。您必须完成其余步骤,但可以避免编辑soapui.bat

希望这可以帮助,