[GH-ISSUE #2802] Container becomes inaccessible after restarting container after setting reverse proxy header authentication #948

Closed
opened 2026-03-07 20:57:08 +03:00 by kerem · 0 comments
Owner

Originally created by @v1tam1nb2 on GitHub (Jul 24, 2024).
Original GitHub issue: https://github.com/dbeaver/cloudbeaver/issues/2802

Reverse proxy header authentication is set up using Openresty. Header authentication succeeds, but after container down/up, cloudbeaver fails to start and becomes inaccessible.

Docker image Version

dbeaver/cloudbeaver:23.3.5

Docker compose

version: '3'
services:
  openresty:
    container_name: openresty
    hostname: openresty
    image: bitnami/openresty:latest
    restart: always
    ports:
      - 8888:80
    volumes:
     - ./openresty/nginx.conf:/opt/bitnami/openresty/nginx/conf/nginx.conf

  cloudbeaver:
    container_name: cloudbeaver
    hostname: cloudbeaver
    image: dbeaver/cloudbeaver:23.3.5
    restart: always
    ports:
      - 8978:8978
    volumes:
      - ./cloudbeaver/cloudbeaver.conf:/opt/cloudbeaver/conf/cloudbeaver.conf
      - ./cloudbeaver/.cloudbeaver.auto.conf:/opt/cloudbeaver/conf/.cloudbeaver.auto.conf
      - ./data/cloudbeaver/workspace:/opt/cloudbeaver/workspace

Openresty setting

  • nginx.conf
# Based on https://www.nginx.com/resources/wiki/start/topics/examples/full/#nginx-conf
# user              www www;  ## Default: nobody

worker_processes  auto;
error_log         "/opt/bitnami/openresty/nginx/logs/error.log";
pid               "/opt/bitnami/openresty/nginx/tmp/nginx.pid";

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format    main '$remote_addr - $remote_user [$time_local] '
                       '"$request" $status  $body_bytes_sent "$http_referer" '
                       '"$http_user_agent" "$http_x_forwarded_for"';
    access_log    "/opt/bitnami/openresty/nginx/logs/access.log";
    add_header    X-Frame-Options SAMEORIGIN;

    client_body_temp_path  "/opt/bitnami/openresty/nginx/tmp/client_body" 1 2;
    proxy_temp_path        "/opt/bitnami/openresty/nginx/tmp/proxy" 1 2;
    fastcgi_temp_path      "/opt/bitnami/openresty/nginx/tmp/fastcgi" 1 2;
    scgi_temp_path         "/opt/bitnami/openresty/nginx/tmp/scgi" 1 2;
    uwsgi_temp_path        "/opt/bitnami/openresty/nginx/tmp/uwsgi" 1 2;

    sendfile           on;
    tcp_nopush         on;
    tcp_nodelay        off;
    gzip               on;
    gzip_http_version  1.0;
    gzip_comp_level    2;
    gzip_proxied       any;
    gzip_types         text/plain text/css application/javascript text/xml application/xml+rss;
    keepalive_timeout  65;
    ssl_protocols      TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers        HIGH:!aNULL:!MD5;
    client_max_body_size 80M;
    server_tokens off;

    include  "/opt/bitnami/openresty/nginx/conf/server_blocks/*.conf";

    # HTTP Server
    server {
        # Port to listen on, can also be set in IP:PORT format
        listen  80;

        include  "/opt/bitnami/openresty/nginx/conf/bitnami/*.conf";

		location / {
			proxy_pass       http://cloudbeaver:8978;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
			proxy_set_header X-User 'cbadmin';
            proxy_set_header X-Role 'user|admin';
		}

        location /status {
            stub_status on;
            access_log   off;
            allow 127.0.0.1;
            deny all;
        }
    }
}

Cloudbeaver settings

  • cloudbeaver.conf
{
    server: {
        serverPort: 8978,

        workspaceLocation: "workspace",
        contentRoot: "web",
        driversLocation: "drivers",

        sslConfigurationPath:"${CLOUDBEAVER_SSL_CONF_PATH:workspace/.data/ssl-config.xml}",

        rootURI: "/",
        serviceURI: "/api/",

        productSettings: {
            # Global properties
            core.theming.theme: 'light',
            core.localization.localization: 'en',
            core.authentication.baseAuthProvider: 'reverseProxy', 
            core.authentication.primaryAuthProvider: 'reverseProxy', 
            # core.localization.defaultLanguage: 'jp',
            plugin.sql-editor.autoSave: true,
            plugin.sql-editor.disabled: false,
            # max size of the file that can be uploaded to the editor (in kilobytes)
            plugin.sql-editor.maxFileSize: 10240,
            plugin.log-viewer.disabled: false,
            plugin.log-viewer.logBatchSize: 1000,
            plugin.log-viewer.maxFailedRequests: 3,
            plugin.log-viewer.maxLogRecords: 2000,
            plugin.log-viewer.refreshTimeout: 3000,
            sql.proposals.insert.table.alias: PLAIN
        },

        expireSessionAfterPeriod: 1800000,

        develMode: false,

        enableSecurityManager: false,

        sm: {
            enableBruteForceProtection: "${CLOUDBEAVER_BRUTE_FORCE_PROTECTION_ENABLED:true}",
            maxFailedLogin: "${CLOUDBEAVER_MAX_FAILED_LOGINS:10}",
            minimumLoginTimeout: "${CLOUDBEAVER_MINIMUM_LOGIN_TIMEOUT:1}",
            blockLoginPeriod: "${CLOUDBEAVER_BLOCK_PERIOD:300}",
            passwordPolicy: {
                minLength: "${CLOUDBEAVER_POLICY_MIN_LENGTH:8}",
                requireMixedCase: "${CLOUDBEAVER_POLICY_REQUIRE_MIXED_CASE:true}",
                minNumberCount: "${CLOUDBEAVER_POLICY_MIN_NUMBER_COUNT:1}",
                minSymbolCount: "${CLOUDBEAVER_POLICY_MIN_SYMBOL_COUNT:0}"
            }
        },

        database: {
            driver: "${CLOUDBEAVER_DB_DRIVER:h2_embedded_v2}",
            url: "${CLOUDBEAVER_DB_URL:jdbc:h2:${workspace}/.data/cb.h2v2.dat}",
            schema: "${CLOUDBEAVER_DB_SCHEMA:''}",
            user: "${CLOUDBEAVER_DB_USER:''}",
            password: "${CLOUDBEAVER_DB_PASSWORD:''}",
            initialDataConfiguration: "${CLOUDBEAVER_DB_INITIAL_DATA:conf/initial-data.conf}",
            pool: {
                minIdleConnections: "${CLOUDBEAVER_DB_MIN_IDLE_CONNECTIONS:4}",
                maxIdleConnections: "${CLOUDBEAVER_DB_MAX_IDLE_CONNECTIONS:10}",
                maxConnections: "${CLOUDBEAVER_DB_MAX_CONNECTIONS:100}",
                validationQuery: "${CLOUDBEAVER_DB_VALIDATION_QUERY:SELECT 1}"
            },
            backupEnabled: "${CLOUDBEAVER_DB_BACKUP_ENABLED:true}"
        }

    },
    app: {
        anonymousAccessEnabled: true,
        anonymousUserRole: "user",
        defaultUserTeam: "user",
        grantConnectionsAccessToAnonymousTeam: false,
        supportsCustomConnections: true,
        showReadOnlyConnectionInfo: false,
        systemVariablesResolvingEnabled: "${CLOUDBEAVER_SYSTEM_VARIABLES_RESOLVING_ENABLED:false}",

        forwardProxy: true,
        publicCredentialsSaveEnabled: true,
        adminCredentialsSaveEnabled: true,

        resourceManagerEnabled: true,

        resourceQuotas: {
            dataExportFileSizeLimit: 10000000,
            resourceManagerFileSizeLimit: 500000,
            sqlMaxRunningQueries: 100,
            sqlResultSetRowsLimit: 100000,
            sqlResultSetMemoryLimit: 2000000,
            sqlTextPreviewMaxLength: 4096,
            sqlBinaryPreviewMaxLength: 261120
        },
        defaultAuthProvider: "reverseProxy",
        enableReverseProxyAuth: true,
        enabledAuthProviders: [
            "reverseProxy",
            "local"
            #"ldap"
        ],

        disabledDrivers: [
            "sqlite:sqlite_jdbc",
            "h2:h2_embedded",
            "h2:h2_embedded_v2",
            "clickhouse:yandex_clickhouse"
        ],
        disabledBetaFeatures: [

        ],
        authConfigurations: [
            {
                "id": "reverseProxy",
                "provider": "reverseProxy",
                "displayName": "Reverse Proxy",
                "disabled": false,
                "iconURL": "",
                "description": "",
                "parameters": {
                    "logout-url": "",
                    "user-header": "X-User",
                    "team-header": "X-Team",
                    "team-delimiter": "",
                    "first-name-header": "",
                    "last-name-header": ""
                }
            }
        ]

    }

}
  • .cloudbeaver.auto.conf
CB_SERVER_NAME=CloudBeaver Server
CB_SERVER_URL=http://localhost:8978
CB_ADMIN_NAME=cbadmin
CB_ADMIN_PASSWORD=TestTest1

Error

cloudbeaver    | 24-07-2024 11:39:38.884 [main] DEBUG io.cloudbeaver.server.CBApplication - Runtime configuration [/opt/cloudbeaver/workspace/.data/.cloudbeaver.runtime.conf]
cloudbeaver    | 24-07-2024 11:39:38.884 [main] DEBUG io.cloudbeaver.server.CBApplication - Read configuration [/opt/cloudbeaver/workspace/.data/.cloudbeaver.runtime.conf]
cloudbeaver    | 24-07-2024 11:39:38.889 [main] DEBUG io.cloudbeaver.server.CBApplication - Load product configuration from '/opt/cloudbeaver/conf/product.conf'
cloudbeaver    | 24-07-2024 11:39:38.892 [main] DEBUG io.cloudbeaver.server.CBApplication - CloudBeaver CE Server 23.3.5.202402191445 is starting
cloudbeaver    | 24-07-2024 11:39:38.892 [main] DEBUG io.cloudbeaver.server.CBApplication -     OS: Linux 4.15.0-166-generic (amd64)
cloudbeaver    | 24-07-2024 11:39:38.893 [main] DEBUG io.cloudbeaver.server.CBApplication -     Java version: 17.0.10 by Eclipse Adoptium (64bit)
cloudbeaver    | 24-07-2024 11:39:38.893 [main] DEBUG io.cloudbeaver.server.CBApplication -     Install path: '/opt/cloudbeaver/server'
cloudbeaver    | 24-07-2024 11:39:38.893 [main] DEBUG io.cloudbeaver.server.CBApplication -     Global workspace: 'file:/opt/cloudbeaver/workspace/'
cloudbeaver    | 24-07-2024 11:39:38.895 [main] DEBUG io.cloudbeaver.server.CBApplication -     Memory available 96Mb/8044Mb
cloudbeaver    | 24-07-2024 11:39:38.895 [main] DEBUG io.cloudbeaver.server.CBApplication -     Content root: /opt/cloudbeaver/web
cloudbeaver    | 24-07-2024 11:39:38.895 [main] DEBUG io.cloudbeaver.server.CBApplication -     Drivers storage: /opt/cloudbeaver/drivers
cloudbeaver    | 24-07-2024 11:39:38.897 [main] DEBUG io.cloudbeaver.server.CBApplication -     Listen port: 8978 on all interfaces
cloudbeaver    | 24-07-2024 11:39:38.897 [main] DEBUG io.cloudbeaver.server.CBApplication -     Base URI: /api/
cloudbeaver    | 24-07-2024 11:39:38.897 [main] DEBUG io.cloudbeaver.server.CBApplication -     Production mode
cloudbeaver    | 24-07-2024 11:39:38.898 [main] DEBUG io.cloudbeaver.server.CBApplication -     Local host addresses:
cloudbeaver    | 24-07-2024 11:39:38.898 [main] DEBUG io.cloudbeaver.server.CBApplication -             172.19.112.3 (cloudbeaver)
cloudbeaver    | 24-07-2024 11:39:38.898 [main] DEBUG io.cloudbeaver.server.CBApplication -             127.0.0.1 (localhost)
cloudbeaver    | 24-07-2024 11:39:38.938 [main] DEBUG i.c.s.auth.ReverseProxyConfigurator - Reverse proxy provider already exist, migration not needed
cloudbeaver    | 24-07-2024 11:39:38.952 [main] DEBUG i.c.service.security.db.CBDatabase - Initiate management database
cloudbeaver    | 24-07-2024 11:39:38.973 [main] DEBUG i.c.service.security.db.CBDatabase -      Initiate connection pool with management database (H2 Embedded V.2; /opt/cloudbeaver/workspace)
cloudbeaver    | 24-07-2024 11:39:39.054 [main] ERROR io.cloudbeaver.server.CBApplication - Error initializing database
cloudbeaver    | org.jkiss.dbeaver.DBException: Error updating management database schema
cloudbeaver    |        at io.cloudbeaver.service.security.db.CBDatabase.initialize(CBDatabase.java:226)
cloudbeaver    |        at io.cloudbeaver.service.security.EmbeddedSecurityControllerFactory.createSecurityService(EmbeddedSecurityControllerFactory.java:65)
cloudbeaver    |        at io.cloudbeaver.server.CBApplicationCE.createGlobalSecurityController(CBApplicationCE.java:62)
cloudbeaver    |        at io.cloudbeaver.server.CBApplication.initializeSecurityController(CBApplication.java:527)
cloudbeaver    |        at io.cloudbeaver.server.CBApplication.startServer(CBApplication.java:348)
cloudbeaver    |        at io.cloudbeaver.model.app.BaseWebApplication.start(BaseWebApplication.java:240)
cloudbeaver    |        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
cloudbeaver    |        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
cloudbeaver    |        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
cloudbeaver    |        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
cloudbeaver    |        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
cloudbeaver    |        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
cloudbeaver    |        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
cloudbeaver    |        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
cloudbeaver    |        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
cloudbeaver    |        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651)
cloudbeaver    |        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588)
cloudbeaver    |        at org.eclipse.equinox.launcher.Main.run(Main.java:1459)
cloudbeaver    |        at org.eclipse.equinox.launcher.Main.main(Main.java:1432)
cloudbeaver    | Caused by: java.lang.IllegalStateException: Connection factory returned null from createConnection
cloudbeaver    |        at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:357)
cloudbeaver    |        at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:889)
cloudbeaver    |        at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:424)
cloudbeaver    |        at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:349)
cloudbeaver    |        at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:134)
cloudbeaver    |        at io.cloudbeaver.service.security.db.CBDatabase.initialize(CBDatabase.java:190)
cloudbeaver    |        ... 18 common frames omitted
cloudbeaver    | 24-07-2024 11:39:39.066 [Framework stop - Equinox Container: e28d0d29-94c1-4e83-8d19-56c5211f5ede] DEBUG io.cloudbeaver.server.CBPlatform - Shutdown Core...
cloudbeaver    | 24-07-2024 11:39:39.118 [Framework stop - Equinox Container: e28d0d29-94c1-4e83-8d19-56c5211f5ede] DEBUG io.cloudbeaver.server.CBPlatform - Shutdown completed in 52ms
cloudbeaver    | Job found still running after platform shutdown.  Jobs should be canceled by the plugin that scheduled them during shutdown: org.jkiss.dbeaver.model.navigator.DBNModel$EventProcessingJob
Originally created by @v1tam1nb2 on GitHub (Jul 24, 2024). Original GitHub issue: https://github.com/dbeaver/cloudbeaver/issues/2802 Reverse proxy header authentication is set up using Openresty. Header authentication succeeds, but after container down/up, cloudbeaver fails to start and becomes inaccessible. ## Docker image Version dbeaver/cloudbeaver:23.3.5 ## Docker compose ```yaml version: '3' services: openresty: container_name: openresty hostname: openresty image: bitnami/openresty:latest restart: always ports: - 8888:80 volumes: - ./openresty/nginx.conf:/opt/bitnami/openresty/nginx/conf/nginx.conf cloudbeaver: container_name: cloudbeaver hostname: cloudbeaver image: dbeaver/cloudbeaver:23.3.5 restart: always ports: - 8978:8978 volumes: - ./cloudbeaver/cloudbeaver.conf:/opt/cloudbeaver/conf/cloudbeaver.conf - ./cloudbeaver/.cloudbeaver.auto.conf:/opt/cloudbeaver/conf/.cloudbeaver.auto.conf - ./data/cloudbeaver/workspace:/opt/cloudbeaver/workspace ``` ## Openresty setting - nginx.conf ```conf # Based on https://www.nginx.com/resources/wiki/start/topics/examples/full/#nginx-conf # user www www; ## Default: nobody worker_processes auto; error_log "/opt/bitnami/openresty/nginx/logs/error.log"; pid "/opt/bitnami/openresty/nginx/tmp/nginx.pid"; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log "/opt/bitnami/openresty/nginx/logs/access.log"; add_header X-Frame-Options SAMEORIGIN; client_body_temp_path "/opt/bitnami/openresty/nginx/tmp/client_body" 1 2; proxy_temp_path "/opt/bitnami/openresty/nginx/tmp/proxy" 1 2; fastcgi_temp_path "/opt/bitnami/openresty/nginx/tmp/fastcgi" 1 2; scgi_temp_path "/opt/bitnami/openresty/nginx/tmp/scgi" 1 2; uwsgi_temp_path "/opt/bitnami/openresty/nginx/tmp/uwsgi" 1 2; sendfile on; tcp_nopush on; tcp_nodelay off; gzip on; gzip_http_version 1.0; gzip_comp_level 2; gzip_proxied any; gzip_types text/plain text/css application/javascript text/xml application/xml+rss; keepalive_timeout 65; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; client_max_body_size 80M; server_tokens off; include "/opt/bitnami/openresty/nginx/conf/server_blocks/*.conf"; # HTTP Server server { # Port to listen on, can also be set in IP:PORT format listen 80; include "/opt/bitnami/openresty/nginx/conf/bitnami/*.conf"; location / { proxy_pass http://cloudbeaver:8978; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-User 'cbadmin'; proxy_set_header X-Role 'user|admin'; } location /status { stub_status on; access_log off; allow 127.0.0.1; deny all; } } } ``` ## Cloudbeaver settings - cloudbeaver.conf ```conf { server: { serverPort: 8978, workspaceLocation: "workspace", contentRoot: "web", driversLocation: "drivers", sslConfigurationPath:"${CLOUDBEAVER_SSL_CONF_PATH:workspace/.data/ssl-config.xml}", rootURI: "/", serviceURI: "/api/", productSettings: { # Global properties core.theming.theme: 'light', core.localization.localization: 'en', core.authentication.baseAuthProvider: 'reverseProxy', core.authentication.primaryAuthProvider: 'reverseProxy', # core.localization.defaultLanguage: 'jp', plugin.sql-editor.autoSave: true, plugin.sql-editor.disabled: false, # max size of the file that can be uploaded to the editor (in kilobytes) plugin.sql-editor.maxFileSize: 10240, plugin.log-viewer.disabled: false, plugin.log-viewer.logBatchSize: 1000, plugin.log-viewer.maxFailedRequests: 3, plugin.log-viewer.maxLogRecords: 2000, plugin.log-viewer.refreshTimeout: 3000, sql.proposals.insert.table.alias: PLAIN }, expireSessionAfterPeriod: 1800000, develMode: false, enableSecurityManager: false, sm: { enableBruteForceProtection: "${CLOUDBEAVER_BRUTE_FORCE_PROTECTION_ENABLED:true}", maxFailedLogin: "${CLOUDBEAVER_MAX_FAILED_LOGINS:10}", minimumLoginTimeout: "${CLOUDBEAVER_MINIMUM_LOGIN_TIMEOUT:1}", blockLoginPeriod: "${CLOUDBEAVER_BLOCK_PERIOD:300}", passwordPolicy: { minLength: "${CLOUDBEAVER_POLICY_MIN_LENGTH:8}", requireMixedCase: "${CLOUDBEAVER_POLICY_REQUIRE_MIXED_CASE:true}", minNumberCount: "${CLOUDBEAVER_POLICY_MIN_NUMBER_COUNT:1}", minSymbolCount: "${CLOUDBEAVER_POLICY_MIN_SYMBOL_COUNT:0}" } }, database: { driver: "${CLOUDBEAVER_DB_DRIVER:h2_embedded_v2}", url: "${CLOUDBEAVER_DB_URL:jdbc:h2:${workspace}/.data/cb.h2v2.dat}", schema: "${CLOUDBEAVER_DB_SCHEMA:''}", user: "${CLOUDBEAVER_DB_USER:''}", password: "${CLOUDBEAVER_DB_PASSWORD:''}", initialDataConfiguration: "${CLOUDBEAVER_DB_INITIAL_DATA:conf/initial-data.conf}", pool: { minIdleConnections: "${CLOUDBEAVER_DB_MIN_IDLE_CONNECTIONS:4}", maxIdleConnections: "${CLOUDBEAVER_DB_MAX_IDLE_CONNECTIONS:10}", maxConnections: "${CLOUDBEAVER_DB_MAX_CONNECTIONS:100}", validationQuery: "${CLOUDBEAVER_DB_VALIDATION_QUERY:SELECT 1}" }, backupEnabled: "${CLOUDBEAVER_DB_BACKUP_ENABLED:true}" } }, app: { anonymousAccessEnabled: true, anonymousUserRole: "user", defaultUserTeam: "user", grantConnectionsAccessToAnonymousTeam: false, supportsCustomConnections: true, showReadOnlyConnectionInfo: false, systemVariablesResolvingEnabled: "${CLOUDBEAVER_SYSTEM_VARIABLES_RESOLVING_ENABLED:false}", forwardProxy: true, publicCredentialsSaveEnabled: true, adminCredentialsSaveEnabled: true, resourceManagerEnabled: true, resourceQuotas: { dataExportFileSizeLimit: 10000000, resourceManagerFileSizeLimit: 500000, sqlMaxRunningQueries: 100, sqlResultSetRowsLimit: 100000, sqlResultSetMemoryLimit: 2000000, sqlTextPreviewMaxLength: 4096, sqlBinaryPreviewMaxLength: 261120 }, defaultAuthProvider: "reverseProxy", enableReverseProxyAuth: true, enabledAuthProviders: [ "reverseProxy", "local" #"ldap" ], disabledDrivers: [ "sqlite:sqlite_jdbc", "h2:h2_embedded", "h2:h2_embedded_v2", "clickhouse:yandex_clickhouse" ], disabledBetaFeatures: [ ], authConfigurations: [ { "id": "reverseProxy", "provider": "reverseProxy", "displayName": "Reverse Proxy", "disabled": false, "iconURL": "", "description": "", "parameters": { "logout-url": "", "user-header": "X-User", "team-header": "X-Team", "team-delimiter": "", "first-name-header": "", "last-name-header": "" } } ] } } ``` - .cloudbeaver.auto.conf ``` CB_SERVER_NAME=CloudBeaver Server CB_SERVER_URL=http://localhost:8978 CB_ADMIN_NAME=cbadmin CB_ADMIN_PASSWORD=TestTest1 ``` ## Error ``` cloudbeaver | 24-07-2024 11:39:38.884 [main] DEBUG io.cloudbeaver.server.CBApplication - Runtime configuration [/opt/cloudbeaver/workspace/.data/.cloudbeaver.runtime.conf] cloudbeaver | 24-07-2024 11:39:38.884 [main] DEBUG io.cloudbeaver.server.CBApplication - Read configuration [/opt/cloudbeaver/workspace/.data/.cloudbeaver.runtime.conf] cloudbeaver | 24-07-2024 11:39:38.889 [main] DEBUG io.cloudbeaver.server.CBApplication - Load product configuration from '/opt/cloudbeaver/conf/product.conf' cloudbeaver | 24-07-2024 11:39:38.892 [main] DEBUG io.cloudbeaver.server.CBApplication - CloudBeaver CE Server 23.3.5.202402191445 is starting cloudbeaver | 24-07-2024 11:39:38.892 [main] DEBUG io.cloudbeaver.server.CBApplication - OS: Linux 4.15.0-166-generic (amd64) cloudbeaver | 24-07-2024 11:39:38.893 [main] DEBUG io.cloudbeaver.server.CBApplication - Java version: 17.0.10 by Eclipse Adoptium (64bit) cloudbeaver | 24-07-2024 11:39:38.893 [main] DEBUG io.cloudbeaver.server.CBApplication - Install path: '/opt/cloudbeaver/server' cloudbeaver | 24-07-2024 11:39:38.893 [main] DEBUG io.cloudbeaver.server.CBApplication - Global workspace: 'file:/opt/cloudbeaver/workspace/' cloudbeaver | 24-07-2024 11:39:38.895 [main] DEBUG io.cloudbeaver.server.CBApplication - Memory available 96Mb/8044Mb cloudbeaver | 24-07-2024 11:39:38.895 [main] DEBUG io.cloudbeaver.server.CBApplication - Content root: /opt/cloudbeaver/web cloudbeaver | 24-07-2024 11:39:38.895 [main] DEBUG io.cloudbeaver.server.CBApplication - Drivers storage: /opt/cloudbeaver/drivers cloudbeaver | 24-07-2024 11:39:38.897 [main] DEBUG io.cloudbeaver.server.CBApplication - Listen port: 8978 on all interfaces cloudbeaver | 24-07-2024 11:39:38.897 [main] DEBUG io.cloudbeaver.server.CBApplication - Base URI: /api/ cloudbeaver | 24-07-2024 11:39:38.897 [main] DEBUG io.cloudbeaver.server.CBApplication - Production mode cloudbeaver | 24-07-2024 11:39:38.898 [main] DEBUG io.cloudbeaver.server.CBApplication - Local host addresses: cloudbeaver | 24-07-2024 11:39:38.898 [main] DEBUG io.cloudbeaver.server.CBApplication - 172.19.112.3 (cloudbeaver) cloudbeaver | 24-07-2024 11:39:38.898 [main] DEBUG io.cloudbeaver.server.CBApplication - 127.0.0.1 (localhost) cloudbeaver | 24-07-2024 11:39:38.938 [main] DEBUG i.c.s.auth.ReverseProxyConfigurator - Reverse proxy provider already exist, migration not needed cloudbeaver | 24-07-2024 11:39:38.952 [main] DEBUG i.c.service.security.db.CBDatabase - Initiate management database cloudbeaver | 24-07-2024 11:39:38.973 [main] DEBUG i.c.service.security.db.CBDatabase - Initiate connection pool with management database (H2 Embedded V.2; /opt/cloudbeaver/workspace) cloudbeaver | 24-07-2024 11:39:39.054 [main] ERROR io.cloudbeaver.server.CBApplication - Error initializing database cloudbeaver | org.jkiss.dbeaver.DBException: Error updating management database schema cloudbeaver | at io.cloudbeaver.service.security.db.CBDatabase.initialize(CBDatabase.java:226) cloudbeaver | at io.cloudbeaver.service.security.EmbeddedSecurityControllerFactory.createSecurityService(EmbeddedSecurityControllerFactory.java:65) cloudbeaver | at io.cloudbeaver.server.CBApplicationCE.createGlobalSecurityController(CBApplicationCE.java:62) cloudbeaver | at io.cloudbeaver.server.CBApplication.initializeSecurityController(CBApplication.java:527) cloudbeaver | at io.cloudbeaver.server.CBApplication.startServer(CBApplication.java:348) cloudbeaver | at io.cloudbeaver.model.app.BaseWebApplication.start(BaseWebApplication.java:240) cloudbeaver | at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208) cloudbeaver | at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136) cloudbeaver | at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) cloudbeaver | at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402) cloudbeaver | at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) cloudbeaver | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) cloudbeaver | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) cloudbeaver | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) cloudbeaver | at java.base/java.lang.reflect.Method.invoke(Method.java:568) cloudbeaver | at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651) cloudbeaver | at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588) cloudbeaver | at org.eclipse.equinox.launcher.Main.run(Main.java:1459) cloudbeaver | at org.eclipse.equinox.launcher.Main.main(Main.java:1432) cloudbeaver | Caused by: java.lang.IllegalStateException: Connection factory returned null from createConnection cloudbeaver | at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:357) cloudbeaver | at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:889) cloudbeaver | at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:424) cloudbeaver | at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:349) cloudbeaver | at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:134) cloudbeaver | at io.cloudbeaver.service.security.db.CBDatabase.initialize(CBDatabase.java:190) cloudbeaver | ... 18 common frames omitted cloudbeaver | 24-07-2024 11:39:39.066 [Framework stop - Equinox Container: e28d0d29-94c1-4e83-8d19-56c5211f5ede] DEBUG io.cloudbeaver.server.CBPlatform - Shutdown Core... cloudbeaver | 24-07-2024 11:39:39.118 [Framework stop - Equinox Container: e28d0d29-94c1-4e83-8d19-56c5211f5ede] DEBUG io.cloudbeaver.server.CBPlatform - Shutdown completed in 52ms cloudbeaver | Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: org.jkiss.dbeaver.model.navigator.DBNModel$EventProcessingJob ```
kerem 2026-03-07 20:57:08 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/cloudbeaver#948
No description provided.