我有一个项目,其中配置了一些 SOAP 接口来测试我的后端。
为了能够转移凭证,我可以选择:
放置包含用户名和密码的肥皂头
<soapenv:Header>...</soapenv:Header>
但在这种情况下,我必须在所有请求中声明它,并且它不是动态的,因为配置的不同端点(环境)的凭据会发生变化为我的所有环境创建一个
Outgoing WS-Security Configurations
并将它们关联到每个 Endpoint
的
Interface
nonce
,其他方式它会自动生成并且服务器不接受它。现在我遇到了小安全问题。我的 SOAP-UI 位于 git 存储库中,如果我只是打开项目 xml 文件,我可以以明文形式看到我的密码。
我尝试使用
Hashed password
但是:
PasswordText
格式的密码有没有办法将密码外部化(可以存储在本地明文文件中)或在project.xml文件中加密?
我在 5.2.0 版中使用 SOAP-UI 开源版本(不是 PRO),从用户界面中使用,而不是使用 Maven 或任何其他工具。
您可以使用全局属性。为此,您需要首先定义一个外部文件,例如名为soapuiProperties.txt 的文件。
在此文件中放置两个属性:
myProject.username=yourUserName
myProject.password=yourPassword
然后配置您的 WS-Security 配置设置并将
${myProject.username}
设置为用户名,并将 ${myProject.password}
设置为密码(您看不到密码文本,因为 UI 字段有一个掩码,但如果您正确输入了属性,则不用担心然后 SOAPUI 将其替换为属性文件中的正确值)。
最后,您必须将文件传递到 SOAPUI,因此编辑
SOAPUI_HOME\bin\soapui.bat
并将以下 -Dsoapui.properties=soapuiProperties.txt
添加到 JAVA_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
。
希望这有帮助,
从soapUI 5.6.0开始,有启用项目文件加密的功能。
项目属性中的“项目密码”选项可以让您轻松加密项目文件的全部内容;
(保存项目时,项目图标会带有一个小“E”,表示已加密)
打开已设置密码保存的项目时,SoapUI 会提示解密该项目后再使用。
要删除加密,只需清除项目密码并保存项目即可。
警告!不要丢失您的密码;如果密码丢失,则无法恢复加密的项目文件。