[fix-9428] [DataSource] delete the password and test again, it is successful without password bug (#9428) (#9531)
* fix bug: After the test data source is successful, delete the password, re-test, or success * Modify the method of generating DatasourceUniqueIdws-common-cnst-protect
parent
508ed9769a
commit
32f76e487f
|
|
@ -17,6 +17,7 @@
|
|||
|
||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource;
|
||||
|
||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.PasswordUtils;
|
||||
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
||||
import org.apache.dolphinscheduler.spi.datasource.ConnectionParam;
|
||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||
|
|
@ -84,6 +85,6 @@ public abstract class AbstractDataSourceProcessor implements DataSourceProcessor
|
|||
@Override
|
||||
public String getDatasourceUniqueId(ConnectionParam connectionParam, DbType dbType) {
|
||||
BaseConnectionParam baseConnectionParam = (BaseConnectionParam) connectionParam;
|
||||
return MessageFormat.format("{0}@{1}@{2}", dbType.getDescp(), baseConnectionParam.getUser(), baseConnectionParam.getJdbcUrl());
|
||||
return MessageFormat.format("{0}@{1}@{2}@{3}", dbType.getDescp(), baseConnectionParam.getUser(), PasswordUtils.encodePassword(baseConnectionParam.getPassword()), baseConnectionParam.getJdbcUrl());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,6 +99,9 @@ public class MySQLDataSourceProcessorTest {
|
|||
MySQLConnectionParam mysqlConnectionParam = new MySQLConnectionParam();
|
||||
mysqlConnectionParam.setJdbcUrl("jdbc:mysql://localhost:3306/default");
|
||||
mysqlConnectionParam.setUser("root");
|
||||
Assert.assertEquals("mysql@root@jdbc:mysql://localhost:3306/default", mysqlDatasourceProcessor.getDatasourceUniqueId(mysqlConnectionParam, DbType.MYSQL));
|
||||
mysqlConnectionParam.setPassword("123456");
|
||||
PowerMockito.mockStatic(PasswordUtils.class);
|
||||
PowerMockito.when(PasswordUtils.encodePassword(Mockito.anyString())).thenReturn("123456");
|
||||
Assert.assertEquals("mysql@root@123456@jdbc:mysql://localhost:3306/default", mysqlDatasourceProcessor.getDatasourceUniqueId(mysqlConnectionParam, DbType.MYSQL));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue