mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
CB-4099. Create logic for save comfig and user for CB TE. (#2067)
* CB-4099. Create logic for save comfig and user for CB TE. * CB-4099. Fixed checkstyle * CB-4099. Refactor after review --------- Co-authored-by: EvgeniaBzzz <139753579+EvgeniaBzzz@users.noreply.github.com>
This commit is contained in:
co-authored by
EvgeniaBzzz
parent
997936328e
commit
98197c8829
@@ -16,6 +16,7 @@
|
||||
*/
|
||||
package io.cloudbeaver.server;
|
||||
|
||||
import org.jkiss.dbeaver.model.auth.AuthInfo;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.InstanceCreator;
|
||||
@@ -24,7 +25,6 @@ import io.cloudbeaver.auth.CBAuthConstants;
|
||||
import io.cloudbeaver.model.app.BaseWebApplication;
|
||||
import io.cloudbeaver.model.app.WebAuthApplication;
|
||||
import io.cloudbeaver.model.app.WebAuthConfiguration;
|
||||
import io.cloudbeaver.model.session.WebAuthInfo;
|
||||
import io.cloudbeaver.registry.WebDriverRegistry;
|
||||
import io.cloudbeaver.registry.WebServiceRegistry;
|
||||
import io.cloudbeaver.server.jetty.CBJettyServer;
|
||||
@@ -825,7 +825,7 @@ public abstract class CBApplication extends BaseWebApplication implements WebAut
|
||||
@NotNull String newServerURL,
|
||||
@NotNull String adminName,
|
||||
@Nullable String adminPassword,
|
||||
@NotNull List<WebAuthInfo> authInfoList,
|
||||
@NotNull List<AuthInfo> authInfoList,
|
||||
long sessionExpireTime,
|
||||
@NotNull CBAppConfig appConfig,
|
||||
@Nullable SMCredentialsProvider credentialsProvider
|
||||
@@ -886,7 +886,7 @@ public abstract class CBApplication extends BaseWebApplication implements WebAut
|
||||
protected abstract void finishSecurityServiceConfiguration(
|
||||
@NotNull String adminName,
|
||||
@Nullable String adminPassword,
|
||||
@NotNull List<WebAuthInfo> authInfoList
|
||||
@NotNull List<AuthInfo> authInfoList
|
||||
) throws DBException;
|
||||
|
||||
public synchronized void flushConfiguration(SMCredentialsProvider credentialsProvider) throws DBException {
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
*/
|
||||
package io.cloudbeaver.server;
|
||||
|
||||
import org.jkiss.dbeaver.model.auth.AuthInfo;
|
||||
import io.cloudbeaver.auth.NoAuthCredentialsProvider;
|
||||
import io.cloudbeaver.model.rm.local.LocalResourceController;
|
||||
import io.cloudbeaver.model.session.WebAuthInfo;
|
||||
import io.cloudbeaver.service.security.CBEmbeddedSecurityController;
|
||||
import io.cloudbeaver.service.security.EmbeddedSecurityControllerFactory;
|
||||
import org.jkiss.code.NotNull;
|
||||
@@ -31,7 +31,6 @@ import org.jkiss.dbeaver.model.auth.SMCredentialsProvider;
|
||||
import org.jkiss.dbeaver.model.rm.RMController;
|
||||
import org.jkiss.dbeaver.model.security.SMAdminController;
|
||||
import org.jkiss.dbeaver.model.security.SMController;
|
||||
import org.jkiss.dbeaver.registry.BasePlatformImpl;
|
||||
import org.jkiss.dbeaver.registry.LocalFileController;
|
||||
import org.jkiss.dbeaver.runtime.DBWorkbench;
|
||||
|
||||
@@ -94,7 +93,7 @@ public class CBApplicationCE extends CBApplication {
|
||||
protected void finishSecurityServiceConfiguration(
|
||||
@NotNull String adminName,
|
||||
@Nullable String adminPassword,
|
||||
@NotNull List<WebAuthInfo> authInfoList
|
||||
@NotNull List<AuthInfo> authInfoList
|
||||
) throws DBException {
|
||||
if (securityController instanceof CBEmbeddedSecurityController) {
|
||||
((CBEmbeddedSecurityController) securityController).finishConfiguration(adminName, adminPassword, authInfoList);
|
||||
|
||||
+8
-1
@@ -40,6 +40,7 @@ import org.jkiss.dbeaver.Log;
|
||||
import org.jkiss.dbeaver.model.DBPDataSourceContainer;
|
||||
import org.jkiss.dbeaver.model.app.DBPDataSourceRegistry;
|
||||
import org.jkiss.dbeaver.model.app.DBPProject;
|
||||
import org.jkiss.dbeaver.model.auth.AuthInfo;
|
||||
import org.jkiss.dbeaver.model.navigator.DBNBrowseSettings;
|
||||
import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
|
||||
import org.jkiss.dbeaver.model.security.*;
|
||||
@@ -514,6 +515,7 @@ public class WebServiceAdmin implements DBWServiceAdmin {
|
||||
adminName = curUser == null ? null : curUser.getUserId();
|
||||
adminPassword = null;
|
||||
}
|
||||
List<AuthInfo> authInfos = new ArrayList<>();
|
||||
List<WebAuthInfo> authInfoList = webSession.getAllAuthInfo();
|
||||
if (CommonUtils.isEmpty(adminName)) {
|
||||
// Try to get admin name from existing authentications (first one)
|
||||
@@ -524,6 +526,11 @@ public class WebServiceAdmin implements DBWServiceAdmin {
|
||||
if (CommonUtils.isEmpty(adminName)) {
|
||||
adminName = CBConstants.DEFAULT_ADMIN_NAME;
|
||||
}
|
||||
for (WebAuthInfo webAuthInfo : authInfoList) {
|
||||
authInfos.add(new AuthInfo(
|
||||
webAuthInfo.getAuthProviderDescriptor().getId(),
|
||||
webAuthInfo.getUserCredentials()));
|
||||
}
|
||||
|
||||
// Patch configuration by services
|
||||
for (DBWServiceServerConfigurator wsc : WebServiceRegistry.getInstance().getWebServices(DBWServiceServerConfigurator.class)) {
|
||||
@@ -541,7 +548,7 @@ public class WebServiceAdmin implements DBWServiceAdmin {
|
||||
serverURL,
|
||||
adminName,
|
||||
adminPassword,
|
||||
authInfoList,
|
||||
authInfos,
|
||||
sessionExpireTime,
|
||||
appConfig,
|
||||
webSession
|
||||
|
||||
+1
-2
@@ -26,7 +26,6 @@ import io.cloudbeaver.auth.SMAutoAssign;
|
||||
import io.cloudbeaver.model.app.WebAppConfiguration;
|
||||
import io.cloudbeaver.model.app.WebAuthApplication;
|
||||
import io.cloudbeaver.model.app.WebAuthConfiguration;
|
||||
import io.cloudbeaver.model.session.WebAuthInfo;
|
||||
import io.cloudbeaver.registry.WebAuthProviderDescriptor;
|
||||
import io.cloudbeaver.registry.WebAuthProviderRegistry;
|
||||
import io.cloudbeaver.registry.WebMetaParametersRegistry;
|
||||
@@ -2625,7 +2624,7 @@ public class CBEmbeddedSecurityController<T extends WebAuthApplication>
|
||||
public void finishConfiguration(
|
||||
@NotNull String adminName,
|
||||
@Nullable String adminPassword,
|
||||
@NotNull List<WebAuthInfo> authInfoList
|
||||
@NotNull List<AuthInfo> authInfoList
|
||||
) throws DBException {
|
||||
database.finishConfiguration(adminName, adminPassword, authInfoList);
|
||||
}
|
||||
|
||||
+4
-5
@@ -20,7 +20,6 @@ import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import io.cloudbeaver.auth.provider.local.LocalAuthProviderConstants;
|
||||
import io.cloudbeaver.model.app.WebApplication;
|
||||
import io.cloudbeaver.model.session.WebAuthInfo;
|
||||
import io.cloudbeaver.registry.WebAuthProviderDescriptor;
|
||||
import io.cloudbeaver.registry.WebAuthProviderRegistry;
|
||||
import io.cloudbeaver.utils.WebAppUtils;
|
||||
@@ -32,6 +31,7 @@ import org.jkiss.code.Nullable;
|
||||
import org.jkiss.dbeaver.DBException;
|
||||
import org.jkiss.dbeaver.Log;
|
||||
import org.jkiss.dbeaver.model.DBConstants;
|
||||
import org.jkiss.dbeaver.model.auth.AuthInfo;
|
||||
import org.jkiss.dbeaver.model.connection.DBPDriver;
|
||||
import org.jkiss.dbeaver.model.impl.jdbc.JDBCUtils;
|
||||
import org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCTransaction;
|
||||
@@ -246,7 +246,7 @@ public class CBDatabase {
|
||||
public void finishConfiguration(
|
||||
@NotNull String adminName,
|
||||
@Nullable String adminPassword,
|
||||
@NotNull List<WebAuthInfo> authInfoList
|
||||
@NotNull List<AuthInfo> authInfoList
|
||||
) throws DBException {
|
||||
if (!application.isConfigurationMode()) {
|
||||
throw new DBException("Database is already configured");
|
||||
@@ -264,12 +264,11 @@ public class CBDatabase {
|
||||
createAdminUser(adminName, adminPassword);
|
||||
|
||||
// Associate all auth credentials with admin user
|
||||
for (WebAuthInfo ai : authInfoList) {
|
||||
for (AuthInfo ai : authInfoList) {
|
||||
if (!ai.getAuthProvider().equals(LocalAuthProviderConstants.PROVIDER_ID)) {
|
||||
WebAuthProviderDescriptor authProvider = ai.getAuthProviderDescriptor();
|
||||
Map<String, Object> userCredentials = ai.getUserCredentials();
|
||||
if (!CommonUtils.isEmpty(userCredentials)) {
|
||||
adminSecurityController.setUserCredentials(adminName, authProvider.getId(), userCredentials);
|
||||
adminSecurityController.setUserCredentials(adminName, ai.getAuthProvider(), userCredentials);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user