提交 b7fee217 编写于 作者: S serge-rider

#3902 Snowflake config page addition (auth)

上级 8984e499
......@@ -25,6 +25,7 @@ public class SnowflakeConstants
{
public static final String PROP_SCHEMA = DBConstants.INTERNAL_PROP_PREFIX + "schema@";
public static final String PROP_ROLE = DBConstants.INTERNAL_PROP_PREFIX + "role@";
public static final String PROP_AUTHENTICATOR = DBConstants.INTERNAL_PROP_PREFIX + "authenticator@";
public static final String DEFAULT_HOST_PREFIX = ".snowflakecomputing.com";
public static final String DEFAULT_DB_NAME = "TEST_DB";
......
......@@ -16,11 +16,10 @@
*/
package org.jkiss.dbeaver.ext.snowflake;
import org.jkiss.dbeaver.ext.snowflake.model.SnowflakeDataSource;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ext.generic.model.meta.GenericMetaModel;
import org.jkiss.dbeaver.ext.snowflake.model.SnowflakeDataSource;
import org.jkiss.dbeaver.ext.snowflake.model.SnowflakeMetaModel;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
......@@ -28,7 +27,6 @@ import org.jkiss.dbeaver.model.app.DBPPlatform;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.connection.DBPDriver;
import org.jkiss.dbeaver.model.impl.jdbc.JDBCDataSourceProvider;
import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.utils.CommonUtils;
......@@ -64,6 +62,7 @@ public class SnowflakeDataSourceProvider extends JDBCDataSourceProvider {
hasParam = addParameter(url, "warehouse", connectionInfo.getServerName(), hasParam);
hasParam = addParameter(url, "schema", connectionInfo.getProviderProperty(SnowflakeConstants.PROP_SCHEMA), hasParam);
addParameter(url, "role", connectionInfo.getProviderProperty(SnowflakeConstants.PROP_ROLE), hasParam);
return url.toString();
}
......
......@@ -19,9 +19,16 @@ package org.jkiss.dbeaver.ext.snowflake.model;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.ext.generic.model.GenericDataSource;
import org.jkiss.dbeaver.ext.generic.model.GenericSQLDialect;
import org.jkiss.dbeaver.ext.generic.model.meta.GenericMetaModel;
import org.jkiss.dbeaver.ext.snowflake.SnowflakeConstants;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.connection.DBPDriver;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.utils.CommonUtils;
import java.util.HashMap;
import java.util.Map;
public class SnowflakeDataSource extends GenericDataSource {
......@@ -31,4 +38,14 @@ public class SnowflakeDataSource extends GenericDataSource {
super(monitor, container, metaModel, new GenericSQLDialect());
}
@Override
protected Map<String, String> getInternalConnectionProperties(DBRProgressMonitor monitor, DBPDriver driver, String purpose, DBPConnectionConfiguration connectionInfo) throws DBCException {
Map<String, String> props = new HashMap<>();
String authProp = connectionInfo.getProviderProperty(SnowflakeConstants.PROP_AUTHENTICATOR);
if (!CommonUtils.isEmpty(authProp)) {
props.put("authenticator", authProp);
}
return props;
}
}
......@@ -16,8 +16,6 @@
*/
package org.jkiss.dbeaver.ext.snowflake.views;
import org.jkiss.dbeaver.ext.snowflake.SnowflakeConstants;
import org.jkiss.dbeaver.ext.snowflake.Activator;
import org.eclipse.jface.dialogs.IDialogPage;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.SWT;
......@@ -32,6 +30,8 @@ import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.Text;
import org.jkiss.dbeaver.Log;
import org.jkiss.dbeaver.ext.snowflake.Activator;
import org.jkiss.dbeaver.ext.snowflake.SnowflakeConstants;
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration;
import org.jkiss.dbeaver.model.exec.*;
......@@ -59,6 +59,7 @@ public class SnowflakeConnectionPage extends ConnectionPageAbstract implements I
private Combo warehouseText;
private Combo schemaText;
private Combo roleText;
private Combo authTypeCombo;
private Text usernameText;
private Text passwordText;
......@@ -170,6 +171,15 @@ public class SnowflakeConnectionPage extends ConnectionPageAbstract implements I
gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL);
roleText.setLayoutData(gd);
roleText.addModifyListener(textListener);
UIUtils.createControlLabel(addrGroup, "Authenticator");
authTypeCombo = new Combo(addrGroup, SWT.BORDER | SWT.DROP_DOWN);
authTypeCombo.add("");
authTypeCombo.add("snowflake");
authTypeCombo.add("externalbrowser");
gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL);
authTypeCombo.setLayoutData(gd);
authTypeCombo.addModifyListener(textListener);
}
createDriverPanel(control);
......@@ -225,6 +235,9 @@ public class SnowflakeConnectionPage extends ConnectionPageAbstract implements I
if (roleText != null) {
roleText.setText(CommonUtils.notEmpty(connectionInfo.getProviderProperty(SnowflakeConstants.PROP_ROLE)));
}
if (authTypeCombo != null) {
roleText.setText(CommonUtils.notEmpty(connectionInfo.getProviderProperty(SnowflakeConstants.PROP_AUTHENTICATOR)));
}
if (passwordText != null) {
passwordText.setText(CommonUtils.notEmpty(connectionInfo.getUserPassword()));
}
......@@ -255,6 +268,9 @@ public class SnowflakeConnectionPage extends ConnectionPageAbstract implements I
if (roleText != null) {
connectionInfo.setProviderProperty(SnowflakeConstants.PROP_ROLE, roleText.getText().trim());
}
if (authTypeCombo != null) {
connectionInfo.setProviderProperty(SnowflakeConstants.PROP_AUTHENTICATOR, authTypeCombo.getText().trim());
}
if (passwordText != null) {
connectionInfo.setUserPassword(passwordText.getText());
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册