我正在尝试在两个不同的数据库(Oracle 和 Postgres)之间动态更改连接字符串所以我在项目级别有一个全局连接字符串,如下所示
我正在尝试通过建立连接字符串从 groovy 脚本为 oracle 和 postgres 设置此连接字符串
if(databaseType.contains("postgre"))
{
def postgresConnstring= "jdbc:postgresql://"+databaseHost+":"+databasePort+"/"+databaseUsername+"?user="+databaseUsername+"&password="+databasePassword
testRunner.testCase.testSuite.project.databaseConnectionContainer.getDatabaseConnectionByName('GhixDB').setConnectionString(postgresConnstring)
}
else
if (databaseType.contains("oracle"))
{
def oracleConnString= "jdbc:oracle:thin:"+databaseUsername+"/"+databasePassword+"@"+databaseHost+":"+databasePort+":"+databaseSid
testRunner.testCase.testSuite.project.databaseConnectionContainer.getDatabaseConnectionByName('GhixDB').setConnectionString(oracleConnString)
}
Oracle 的 JDBC 连接字符串如下所示。jdbc:oracle:thin:${#Project#databaseUserName}/${#Project#databasePassword}@${#Project#databaseHost}:${#Project#databasePort}:${#Project#databaseSid}
因此,当我在项目级别设置此连接字符串时,我看到数据库配置正在获取部分密码并在数据库主机字段中看到它。如下所示。
当我们手动设置连接字符串时,我看到密码值设置为 PASS_VALUE。但是当我从超过 10 个字符长的脚本中动态传递一些真实密码值时,连接字符串会从密码中提取剩余的字符并传递给主机名。
有人可以帮我解决这个问题吗?