dbeaver/pro#9096 add ability for restricting ssh connections (#4320)

* dbeaver/pro#9096 add ability for restricting ssh connections

* dbeaver/pro#9096 validate ssh tunnelling for te desktop

* dbeaver/pro#9096 remove unused constant

* dbeaver/pro#9096 show alert if ssh is disabled

* Revert "dbeaver/pro#9096 show alert if ssh is disabled"

This reverts commit cce94063b0.

* dbeaver/pro#9096 do not show ssh for TE product

---------

Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
This commit is contained in:
Ainur
2026-05-11 15:52:51 +02:00
committed by GitHub
co-authored by Daria Marutkina naumov
parent 0229ed1327
commit 339f19ff24
3 changed files with 16 additions and 2 deletions
@@ -25,6 +25,11 @@
label="Default secret controller" description="Default void secret controller"/>
</extension>
<extension point="io.cloudbeaver.feature">
<feature id="ssh" label="SSH tunnels for databases" description="Enables SSH tunnels for secure database connections, allowing access to remote databases through encrypted channels" enabledByDefault="true"/>
</extension>
<extension point="org.jkiss.dbeaver.ws.event">
<event topicId="cb_session_task" id="cb_session_task_info_updated"
class="io.cloudbeaver.websocket.event.task.WSSessionTaskInfoEvent"/>
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2024 DBeaver Corp and others
* Copyright (C) 2010-2026 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
package io.cloudbeaver.model.session;
import io.cloudbeaver.WebSessionProjectImpl;
import io.cloudbeaver.utils.ServletAppUtils;
import org.jkiss.code.NotNull;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
@@ -199,12 +200,15 @@ public class WebSessionWorkspace implements DBPWorkspace {
@Override
public boolean hasRealmPermission(@NotNull String permission) {
if (getWebSession() instanceof WebSession webSession) {
return webSession.getSessionPermissions().contains(permission);
}
return false;
}
@Override
public boolean supportsRealmFeature(@NotNull String feature) {
return false;
return ServletAppUtils.getServletApplication().getAppConfiguration().isFeatureEnabled(feature);
}
}
@@ -115,4 +115,9 @@ public class ServerGlobalWorkspace extends BaseWorkspaceImpl {
}
return null;
}
@Override
public boolean supportsRealmFeature(@NotNull String feature) {
return application.getAppConfiguration().isFeatureEnabled(feature);
}
}