Backend Connections

Im Folgenden werden die verschiedenen Konfigurationsmöglichkeiten der Backend Connections vorgestellt und beschrieben.

Anlegen einer Backend Connection

Im Reiter Backend Connections fügen Sie eine neue Komponente hinzu.

Die Art der Backend Connection wird durch das Eingabefeld "Typ" ausgewählt. Je nach Auswahl des Typs werden die spezifischen Konfigurationsoptionen angezeigt.

create backend connection 1

Zum erstmaligen und späteren Bearbeiten der einzelnen Felder und Einstellungen stehen Hilfe-Tools zur Verfügung.

Toolbar für Modulkomponenten

  • Blendet Hilfstexte ein bzw. aus.


  • Validiert den Code der betreffenden Felder und zeigt die Anzahl eventueller Fehler und eine entsprechende Fehlermeldung an.

  • Nicht Default
    Beim Aktivieren dieser Funktion werden ausschließlich die Einstellungen angezeigt, die vom Default-Wert abweichen.

  • Standardwerte
    Setzt alle Felder und Einstellungen auf die Default-Werte zurück.

  • Änderungen verwerfen
    Setzt alle Werte auf den letzten Speicherstand zurück.
    Beim Anlegen einer neuen Backend Connection werden die Werte also auf den Default-Zustand zurückgesetzt.

  • Speichern
    Speichert die neue Backend Connection mit allen eventuellen Eintragungen und Einstellungen. Diese Komponente taucht dann in der Komponenten-Übersicht unterhalb der entsprechenden Gruppe auf.

Allgemeine Modulkonfiguration

Dies sind die Konfigurationsparameter, die bei allen Backend Connections vorhanden sind.

Setting (Key) Gruppe Typ Beschreibung

ModuleHeader
(moduleHeader_enabled)

Module

bool

Ermöglicht das De-/Aktivieren des ModuleHeaders

Module_Description
(moduleHeader_description)

Module

text

Ermöglicht die Hinterlegung einer kurzen Beschreibung des Moduls. Kann z.B. im ModuleHeader angezeigt werden.

Module_Icon
(module_iconCls)

Module

text

Angezeigtes FontAwesome-Icon der Backend Connection Instanz.

Module_Name
(module_name)

Module

text

Name des Moduls

Verbindungstypen

Es gibt verschiedene Verbindungstypen, die im Folgenden beschrieben werden.

http_proxy

Dies ermöglicht die Einrichtung eines internen Proxies für HTTP Verbindungen durch das BPC hindurch. Dies ermöglicht beispielsweise, per External Content Modulkomponente auf einen Server zuzugreifen, der eine Anmeldung per BasicAuth erfordert oder nicht direkt, sondern ausschließlich via Proxy erreichbar ist.

Setting (Key) Gruppe Typ Beschreibung

Connection_Password
(connectionPassword)

Module

text

Password für Authentifizierung der Connection (BasicAuth am Zielserver)

Connection_Username
(connectionUsername)

Connection

text

Username für Authentifizierung der Connection

Connection_Timeout
(connectionTimeout)

Connection

number

Maximales Timeout der Connection.
Default: 180

Connection_CheckCsrfToken
(checkCsrfToken)

Security

bool

Ermöglicht das De-/Aktivieren des CSRF Token Checks.

Connection_SendSessionId
(sendSessionId)

Security

bool

Wenn aktiv, wird eine Session Id (im Header X-Bpc-SessionId) mitgeschickt, mit der man den Nutzer und dessen Rollen und Rechte abfragen kann, ohne jedoch API-Calls in seiner Identität durchführen zu können.
Default: false

Connection_InjectUserSessionJWT
(injectSessionJwt)

Security

bool

Es wird der OIDC ID-Token im Header (X-Bpc-Session) gesetzt, der die Nutzerinformationen enthält.
Default: false

Connection_UntrustedCertificates
(allowUntrustedConnections)

Security

text

Es wird allen Zertifikaten vertraut sowie der Common Name (CN) Check übersprungen.
Default: false

Http_Header_Filter
(httpHeaderFilter)

Proxy

json

Liste der Header Namen, die herausgefiltert werden sollen. Aus Sicherheitsgründen wird der BPC-API-Key-Header (X-APIKey) stets gefiltert.

Default:

[
  "X-Frame-Options"
]

ProxyServer_Port
(proxyServerPort)

Proxy

number

Der Port unter dem der Proxy-Server erreichbar ist.
Default: 80

ProxyServer_URL
(proxyServer)

Proxy

text

Die Adresse des zu verwendenden Proxy-Servers. Bleibt leer, wenn eine direkte Verbindung zum Zielserver möglich ist.

Target_BaseURL
(connectionBaseUrl)

Target

text

Dieser Parameter definiert die Basis-URL zum Zielsystem und wird bei jeder Verwendung vorangestellt.

Der BPC-Session-Cookie wird bei jedem weitergeleiteten Aufruf über einen HTTP-Proxy gefiltert, damit ein Empfänger nicht im Kontext des Benutzers das BPC verwenden kann. Sollte es notwendig sein, auf Empfängerseite die Identität und Validität des Benutzers zu prüfen, so ist das über die Optionen sendSessionId bzw. injectUserSessionJWT möglich.

Im Fall von sendSessionId wird über den Header X-Bpc-SessionId die Session-ID des Benutzers mitgeschickt. Die Session kann dann über den GET-Endpunkt /cxf/bpc-core/authentication/session/{sessionid} geprüft werden (Siehe Authentication API).

Im Fall von injectUserSessionJWT wird im Header X-Bpc-Session der ID-Token des Open-ID-Connect-Providers mitgeschickt. Die Signatur muss mit dem öffentlichen Schlüssel des OIDC-Providers validiert werden. Muss man zusätzlich Berechtigungen durch Rollen, Rechte und Organisationen prüfen, ist es notwendig, den OIDC-Provider so zu konfigurieren, dass diese im ID-Token enthalten sind.

identity_provider

Dieser Verbindungstyp ermöglicht die Konfiguration des verwendeten Identity Providers.

Die genauen Konfigurationsparamter sind unter Konfiguration der Identity Provider beschrieben.

deployment_system

Dieser Verbindungstyp ermöglicht die Konfiguration der BPC-Systeme, die beim Deployment als Quelle und Ziel angesprochen werden sollen.

Setting (Key) Gruppe Typ Beschreibung

DeploymentSystem_SortPriority
(sortPriority)

Config

number

Anpassung der Sortierreihenfolge (Auswahlbox im Deployment Dialog). Default: 1000

DeploymentSystem_URL+ (url)

Target

text

Basis URL zum Zielsystem und wird bei jeder Verwendung vorangestellt.
Default: https://example.com:8181

DeploymentSystem_AllowUntrustedConnections
(allowUntrustedConnection)

Connection

bool

Unsichere Verbindungen zulassen.
Default: false

DeploymentSystem_ApiKey
(api_key)

Connection

text

API Key des Zielsystems

data_source

Dieser Verbindungstyp wird für die Konfiguration von Datenbankverbindungen verwendet. Für diese Verbindungen ist es nötig, dass zuvor der passende Datenbanktreiber installiert wird.

Setting (Key) Gruppe Typ Beschreibung

DataSource_Configuration
(configuration)

Datasource

json

Zusätzliche Data Source Konfigurationsoptionen, die nicht durch die Allgemeinen (DataSource_User, …​) abgedeckt sind.

Default:

{
    "pool": "dbcp2",
    "xa": "true",
    "pool.maxTotal": "10",
    "pool.maxIdle": "5",
    "pool.minIdle": "2"
}

DataSource_DriverName
(driverName)

Datasource

text/combobox

Datenbank-Treiber wie oracle, mysql, mariadb

DataSource_Password
(password)

Datasource

text

Passwort des Datenbankbenutzers

DataSource_URL
(url)

Datasource

text

JDBC Verbindungs-URL zur Datenbank.
Default: jdbc:oracle:thin:@example.com:1521:XE

DataSource_User
(user)

Datasource

text

Name des Datenbankbenutzers

Für die Verbindung zur Datenbank wird in den meisten Fällen nur eine lesende Verbindung benötigt. Um Sicherheitsproblemen vorzubeugen, empfiehlt es sich nach dem Least Privilege Prinzip einen Datenbankbenutzer zu verwenden, der nur Leserecht hat.

DataSource_Configuration

Im Konfigurationsparameter "DataSource_Configuration" wird hauptsächlich der verwendete Pool mit den Datenverbindungen konfiguriert. Eine Datenquelle (Data Source) hält einen Pool mit n-Verbindungen zur Datenbank vor. Die einzelnen Replikationsjobs holen sich jeweils eine solche Verbindung und geben sie nach getaner Arbeit wieder an den Pool zurück. Die Größe ist deshalb sinnvoll zu wählen. Diesen Wert zu hoch (>8 oder >16) anzusetzen ist nicht unbedingt von Vorteil bzw. kann sogar zu Fehlern führen, wenn zum Beispiel die Oracle-Datenbank nicht so viele gleichzeitige Verbindungen zulässt (= DB Admin nach der sinnvollen Anzahl fragen). Weitere Pool-Einstellungen sind HIER zu finden.

Setting Typ Beispiel Beschreibung

pool

String

dbcp2

der zu verwendende Pool

xa

String

true

als XA Resource festlegen. Aktiviert die Möglichkeit für verteilte Transaktionen (JDBC XA). Es wird hier true als Einstellung empfohlen.

pool.minIdle

String

2

The minimum number of connections that can remain idle in the pool, without extra ones being created, or zero to create none.

pool.maxIdle

String

5

The maximum number of connections that can remain idle in the pool, without extra ones being released, or negative for no limit.

pool.maxTotal

String

10

Max. Anzahl der Datenbank-Verbindungen im Pool

Kommt es bei Oracle immer wieder zu Closed Connection Fehlern, dann folgende Einstellungen noch mit aufnehmen.

Setting Typ Beispiel Beschreibung

pool.testOnBorrow

String

true

Validierung der DB-Verbindung bei Entnahme aus dem Pool.
Default: false

pool.testOnReturn

String

true

Validierung der DB-Verbindung beim Zurücklegen in den Pool.
Default: false

factory.validationQuery

String

select 1 from dual

SQL Query die genau einen Treffer zurückgibt. Dies wird zum Testen der Verbindung genutzt.
Default: -

factory.validationQueryTimeout

String

15

Ausführungs-Timeout in Sekunden für die festgelegte Validation Query.
Default: no timeout

Copy&Paste
{

    "pool.testOnBorrow": "true",
    "pool.testOnReturn": "true",
    "factory.validationQuery": "select 1 from dual",
    "factory.validationQueryTimeout": "15"

}

Dokumentation zu den Parametern: BasicDataSource Configuration Parameters

pool.testOnBorrow scheint, anders als in der Dokumentation beschrieben, per Default deaktiviert zu sein!

file_storage

Dieser Verbindungstyp wird für die Konfiguration von AWS-S3 und S3-kompatiblen Dateispeicherverbindungen verwendet.

Setting (Key) Gruppe Typ Beschreibung

Endpunkt-URL
(fileStorageEndpointUrl)

config

String

Die vollständige URL des S3-kompatiblen Storage-Endpunkts. Kann bei AWS S3 Verbindungen leer gelassen werden.

Region
(fileStorageCloudRegion)

config

String

Die Region des S3-Dienstes (z.B. us-east-1). Bei S3-kompatiblen Anbietern ggf. leer lassen (default 'us-east-1') oder einen benutzerdefinierten Wert eintragen.

Access-Key
(fileStorageCredentialsKey)

config

String

Der Access-Key zur Authentifizierung beim S3-Dienst. Entspricht der Benutzerkennung für den Zugriff.

Secret-Key
(fileStorageCredentialsSecret)

config

String

Der geheime Schlüssel (Secret-Key) zum Access-Key. Wird zur sicheren Authentifizierung benötigt.


Keywords: