Die BPC Version 4.1 wird nicht mehr gewartet.

Sollten Sie diese BPC Version nutzen, empfehlen wir Ihnen eine Migration auf eine aktuelle Version. Die Dokumentation zur neusten BPC Version finden Sie hier. Sollten Sie Fragen haben, wenden Sie sich bitte an unseren Support.

Backend Connections

The various configuration options for Backend Connections are presented and described below.

backend connections overview

Creating a Backend Connection

Below are the steps for creating a Backend Connection.

  1. Add a new component in the Backend Connections tab.
    The type of backend connection is selected using the “Type” input field. Depending on the type selected, the specific configuration options are displayed.

    add backend connection

General Module Configuration

These are the configuration parameters available for all backend connections.

Setting (Key) Group Type Description

ModuleHeader
(moduleHeader_enabled)

Module

bool

Enables/disables the ModuleHeader

Module_Description
(moduleHeader_description)

Module

text

Allows you to enter a short description of the module. Can be displayed, for example, in the ModuleHeader.

Module_Icon
(module_iconCls)

Module

text

FontAwesome icon displayed for the Backend Connection instance.

Module_Name
(module_name)

Module

text

Name of the module

Connection Types

"http_proxy"

This connection type allows, for example, the External Content module component to access a server that requires BasicAuth authentication or is not directly accessible but only via a proxy.

Setting (Key) Group Type Description

Connection_Password
(connectionPassword)

Module

text

Password for connection authentication (BasicAuth on the target server)

Connection_Username
(connectionUsername)

Connection

text

Username for connection authentication

Connection_Timeout
(connectionTimeout)

Connection

number

Maximum connection timeout.
Default: 180

Connection_CheckCsrfToken
(checkCsrfToken)

Security

bool

Enables or disables the CSRF token check.

Connection_FilterBpcSession
(filterSessionCookie)

Security

bool

Enables or disables the session filter.
Default: true

Connection_InjectUserSessionJWT
(injectSessionJwt)

Security

bool

A JWT containing the session information is set in the header.
Default: false

Example call
GET /?_dc=1569249450661 HTTP/1.1
X-Bpc-Session: SESSIONID.
Cookie: oidc.userInfoJWT=eyJhbGciOiJIUzUxMiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICIyODA0MTg3MS00M2EzLTQ0NDAtYWUyZS1hNGFiZTM1NDViMzIifQ.eyJzdWIiOiI3ZmEwMWYxYS0wNzY5LTQ4Y2UtOTQzMS1hODU4Yjk5Y2ExN2EiLCJhdWQiOiJicGMtY29yZSIsImFkZHJlc3MiOnt9LCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYnBjX3JvbGVzIjpbImJwY2FkbWluIiwiYnBjdXNlciIsImFDbGllbnRSb2xlIl0sIm5hbWUiOiJUaW1vIFZpcnQiLCJpc3MiOiJodHRwOi8vZGV2MDYudmlydGltby5uZXQ6ODA5MS9hdXRoL3JlYWxtcy9icGMiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJicGNhZG1pbiIsImdpdmVuX25hbWUiOiJUaW1vIiwiZmFtaWx5X25hbWUiOiJWaXJ0IiwiZW1haWwiOiJicGNhZG1pbkBleGFtcGxlLmNvbSJ9.tP3jJo86ONW0lbM47ne_Z0KgMIXCt645hkwK1Why4MtB1Z8e9Lxw4I76n-4zYkLGgADka1G6LkWI4nCDjbtJ7g; oidc=7fa01f1a-0769-48ce-9431-a858b99ca17a
Accept: */*,*
Accept-Language: de-DE,de;q=0.9,en;q=0.8,en-US;q=0.7
accept-encoding: gzip, deflate, br
Host: xyz.local:1234
Connection: keep-alive

In this configuration, we have two different pieces of user session information:

  • The cookie oidc.userInfoJWT contains the JWT with user data as provided by Keycloak. This is signed and can be validated via OIDC.

  • Header X-Bpc-Session contains the serialized BpcUserSession as a JWT (plain, unsigned)

Connection_UntrustedCertificates
(allowUntrustedConnections)

Security

text

All certificates are trusted, and the Common Name (CN) check is skipped.
Default: false

Http_Header_Filter
(httpHeaderFilter)

Proxy

json

List of header names to be filtered out. For security reasons, the BPC API key header (X-APIKey) is always filtered.

Default:

[
  "X-Frame-Options"
]

ProxyServer_Port
(proxyServerPort)

Proxy

number

The port on which the proxy server is accessible.
Default: 80

ProxyServer_URL
(proxyServer)

Proxy

text

The address of the proxy server to be used. Leave blank if a direct connection to the target server is possible.

Target_BaseURL
(connectionBaseUrl)

Target

text

This parameter defines the base URL for the target system and is prepended to every request.

"identity_provider"

This connection type allows you to configure the identity provider being used.

Setting (Key) Group Type Description

IdentityProvider_AdditionalInfoEnabled
(identityProvider.additionalInfoEnabled)

AdditionalInfo

bool

Flag indicating whether the Additional Info endpoint should be called or not.
Default: false

IdentityProvider_AdditionalInfoEntriesPrefix
(identityProvider.additionalInfoEntriesPrefix)

AdditionalInfo

text

Prefix for the data from the Additional Info endpoint.
Default: x-

IdentityProvider_AdditionalInfoURL
(identityProvider.additionalInfoURL)

AdditionalInfo

text

Endpoint for populating user sessions with additional data.
Default: https://server:port/endpoint

IdentityProvider_AdditionalInfoURLBasicAuthUsername
(identityProvider.additionalInfoURLBasicAuthUsername)

AdditionalInfo

text

Username, if the Additional Info endpoint is secured via Basic Auth

IdentityProvider_AdditionalInfoURLBasicAuthPassword
(identityProvider.additionalInfoURLBasicAuthPassword)

AdditionalInfo

password

Password if the Additional Info endpoint is secured via Basic Auth

IdentityProvider
(identityProvider)

Config

text/ combobox

Identity Provider Service.
Values: INUBIT, jdbc, karaf, keycloak, oidc

Default: karaf

IdentityProvider_URL
(IdentityProvider.url)

Config

text

The URL at which the Identity Provider is accessible

IdentityProvider_Configuration(Keycloak, OIDC)
(identityProvider_configuration)

Config

json

Configuration object for the Identity Provider

IdentityProvider_Mappings
(identityProvider_mappings)

Config

json

Role mapping between BPC and the Identity Provider.

Default:

{
    "organisations":
    {
        "DEFAULT":
        {
            "assignedRoles": [],
            "assignedRights": [],
            "assignedOrganisations": []
        }
    },
    "roles":
    {
        "bpcuser":
        {
            "assignedRoles": [],
            "assignedRights": [
                "loadModule_blank",
                "loadModule_account"
            ]
        }
    },
     "rights": {}
}

IdentityProvider_SelfServiceURL
(identityProvider_ussUrl)

Config

text

The URL at which the self-service portal is accessible

IdentityProvider_PasswordValidationRegExp
(identityProvider_pwdValidationRegExp)

Config

text

Regular expression (see Java documentation) for validating passwords. For example, at .{8,}, the password must be at least 8 characters long.

Complex example consisting of several parts: (?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\S+$).{8,}

  • (?=.*[0-9]) - At least one digit

  • (?=.*[a-z]) - At least one lowercase letter

  • (?=.*[A-Z]) - At least one uppercase letter

  • (?=.*[@#$%^&+=]) - At least one special character

  • (?=\S+$) - No spaces (whitespace)

  • .{8,} - At least 8 characters in total

IdentityProvider_ChangeOrganisationEnabled
(identityProvider_ussChangeOrganisationEnabled)

Frontend

bool

Enables/disables the ability to change the organization in the user interface.
Default: false

IdentityProvider_ChangePasswordEnabled
(identityProvider_ussChangePasswordEnabled)

Frontend

bool

Enables or disables the ability to change the password in the user interface.
Default: false

"deployment_system"

This connection type allows you to configure the BPC systems that are to be addressed as sources and targets during the Deployment.

Setting (Key) Group Type Description

DeploymentSystem_SortPriority
(sortPriority)

Config

number

Adjusts the sort order (drop-down box in the Deployment dialog). Default: 1000

DeploymentSystem_URL+ (url)

Target

text

Base URL for the target system; it is prepended each time it is used.
Default: https://example.com:8181

DeploymentSystem_AllowUntrustedConnections
(allowUntrustedConnection)

Connection

bool

Allow untrusted connections.
Default: false

DeploymentSystem_ApiKey
(api_key)

Connection

text

API key of the target system

"data_source"

This connection type is used to configure database connections. For these connections, the appropriate database driver must be installed beforehand.

Setting (Key) Group Type Description

DataSource_Configuration
(configuration)

Datasource

json

Additional data source configuration options not covered by the general settings (DataSource_User, …​).

Default:

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

DataSource_DriverName
(driverName)

DataSource

text/combobox

Database drivers such as oracle, mysql, MariaDB

DataSource_Password
(password)

DataSource

text

Database user password

DataSource_URL
(url)

DataSource

text

JDBC connection URL to the database.
Default: jdbc:oracle:thin:@example.com:1521:XE

DataSource_User
(user)

Datasource

text

Name of the database user

In most cases, only a read-only connection is required to connect to the database. To prevent security issues, it is recommended—in accordance with the principle of least privilege —to use a database user who has read-only access.

DataSource_Configuration

The "DataSource_Configuration" configuration parameter is primarily used to configure the pool of database connections. A data source maintains a pool of n connections to the database. Each replication job acquires one such connection and returns it to the pool once its work is complete. It is therefore important to choose the size wisely. Setting this value too high (>8 or >16) is not necessarily beneficial and may even lead to errors if, for example, the Oracle database does not allow that many concurrent connections (= ask the DB admin for a reasonable number). Additional pool settings can be found HERE.

Setting Type Example Description

pool

String

dbcp2

the pool to be used

xa

String

true

Set as an XA resource. Enables distributed transactions (JDBC XA). The recommended setting here is true.

pool.minIdle

String

2

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

pool.maxIdle

String

5

The maximum number of Connections that can remain idle in the pool without additional ones being released, or a negative value for no limit.

pool.maxTotal

String

10

Maximum number of database Connections in the pool

If " Closed Connection " errors occur repeatedly in Oracle, include the following settings as well.

Setting Type Example Description

pool.testOnBorrow

String

true

Validates the DB connection when a connection is taken from the pool.
Default: false

pool.testOnReturn

String

true

Validates the DB connection when a connection is returned to the pool.
Default: false

factory.validationQuery

String

select 1 from dual

SQL query that returns exactly one result. This is used to test the connection.
Default: -

factory.validationQueryTimeout

String

15

Execution timeout in seconds for the specified validation query.
Default: no timeout

Copy&Paste
{

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

}

Documentation on the Parameters: BasicDataSource Configuration Parameters

pool.testOnBorrow appears to be disabled by default, contrary to what is described in the documentation!


Keywords: