[httpServer]

Definiert Optionen für den httpServer, der innerhalb eines CTRL Managers läuft

[httpServer] accessLog

Typ
bool
Default
0
Wertebereich
0|1
Definiert ob der HTTP Server die IP Adresse von jeder eingehenden Verbindung in das Log-File log/httpAccess.log schreiben soll

[httpServer] allowPanelParam

Typ
bool
Default
0
Wertebereich
0|1
Definiert ob der HTTP Server den "panel" Query Parameter in der URL für den Start vom ULC User Interface Manager erlaubt oder nicht.

[httpServer] autoEncryption

Typ
bool
Default
1
Wertebereich
0|1
Definiert ob der HTTP Server alle Dateien unter dem "panels" sowie unter dem "scripts" Ordner automatisch verschlüsselt, bevor diese zum Client übertragen werden. Hinweis: Dies wirkt sich negativ auf die Größe der zu übertragenden Dateien aus, da verschlüsselte Dateien durch gzip Kompression nicht mehr kleiner werden.

[httpServer] compatIgnoreForwardedFor

Typ
bool
Default
0
Wertebereich
0|1
NV Kompatibilitätsmodus. Definiert, welche IP-Adresse für ULC UX Clients verwendet wird, die über einen Reverse Proxy verbunden sind:
  • 0: die ursprüngliche IP-Adresse des Browsers, auf dem der ULC UX Client läuft, wird aus dem HTTP-Header X-Forwarded-For gelesen und für myDisplayName() und UI-Einstellungen verwendet.
  • 1: die IP-Adresse des Reverse Proxy wird für myDisplayName() und UI-Einstellungen verwendet (kompatibel zu Versionen vor 3.19 P009).

[httpServer] compressionCacheEnabled

Typ
bool
Default
1
Wertebereich
0|1
Definiert ob der HTTP Server einem dazu fähigen Client gzip komprimierte Dateien überträgt, welcher der HTTP Server dann automatisch erzeugt und unter dem <proj_path>/cache Verzeichnis ablegt. Der HTTP Server stellt sicher, daß eine Änderung des Dateizeitstempels der originalen Datei zur Aktualisierung der komprimierten Datei im cache erfolgt, wenn die Datei das nächste mal angefragt wird.

[httpServer] externalAuthHeader

Typ
string
Definiert den Namen eines speziellen HTTP Headers, welcher, wenn vorhanden, dazu verwendet wird den User der Anfrage zu definieren, welcher schon von einer externen Applikation authentifiziert wurde. Der HTTP Server wird in diesem Fall keine Authentifizierung dieser Anfrage mehr durchführen und verläßt sich auf die Vertrauenswürdigkeit der externen Applikation. Hinweis: Wenn dies falsch verwendet wird, ist dies ein Sicherheitsleck.

[httpServer] externalAuthParam

Typ
string
Definiert den Namen eines speziellen URL Query Parameters, welcher, wenn vorhanden, dazu verwendet wird den User der Anfrage zu definieren, welcher schon von einer externen Applikation authentifiziert wurde. Der HTTP Server wird in diesem Fall keine Authentifizierung dieser Anfrage mehr durchführen und verläßt sich auf die Vertrauenswürdigkeit der externen Applikation. Hinweis: Wenn dies falsch verwendet wird, ist dies ein Sicherheitsleck.

[httpServer] favIcon

Typ
string
Default
/pictures/StandardIcons/Console_20.png
Definiert den relativen Pfad zum Icon, welches bei Anfrage nach "/favicon.ico" geliefert wird.

[httpServer] httpHeader

Typ
string
Default
See Description
Der Eintrag erlaubt es Inhalte des HTTP Headers zu setzen. Hiermit können HTTP Header spezifische Einstellungen für die HTTP(S) Kommunikation konfiguriert werden. Der httpHeader kann mehrmals gesetzt werden um mehrfache Einstellungen vorzunehmen. Jeder Eintrag setzt einen zusätzlichen HTTP Header für die HTTP(S) Requests. Default:

  httpHeader = "X-XSS-Protection: 1; mode=block"
  httpHeader = "X-Content-Type-Options: nosniff"
  httpHeader = "Cache-Control: private"
  httpHeader = "Cache-Control: must-revalidate"
  

Um alle HTTP Header Einträge (inklusive des Default Werte) zu entfernen kann folgender Eintrag gesetzt werden:


  httpHeader = "-empty list-"
  

Hinweis: Mandatory Header Einträge werden dadurch nicht entfernt.

[httpServer] indexPage

Typ
string
Default
/data/index.html
Definiert die Startseite, die der HTTP Server liefern soll, wenn die root URL "/" angefragt wird. Dies wird nur verwendet, wenn die root URL "/" nicht schon mit httpConnect() registriert wurde.

[httpServer] loadBalance

Typ
string
Wertebereich
hostname [max=5]
Dient der Lastverteilung für gestartete ULC 2.0 User Interface Manager. Dieser Eintrag darf beliebig oft verwendet werden. Jeder Eintrag definiert einen weiteren Host, auf dem ein HTTP Server läuft, der ULC 2.0 User Interface Manager starten darf. Die maximale Anzahl der UIs auf diesem Rechner wird mit der Option max=x angegeben. Fehlt die max Option, wird 5 angenommen.

Beispiel: loadBalance = "win10-140 max=10 exts=extern.etm.at:445 ext=extern.etm.at:82" loadBalance = "win10-141 max=10 exts=extern.etm.at:446 ext=extern.etm.at:83"

exts= wird dann verwendet, wenn die Verbindung verschlüsselt ist, also wenn per https:// gearbeitet wird.

ext= wird dem client (dem ULC JavaScript Teil) gesendet, wenn die Verbindung nicht verschlüsselt ist, also wenn per http:// gearbeitet wird.

Hinweis: In einem redundanten System, wenn dieser config Eintrag nicht angegeben ist, werden beide Redu-Server zur Lastverteilung herangezogen (falls der HTTP Server auf einem der beiden Redu-Server läuft). In diesem Fall ist es nötig, den CTRL Manager mit der Option -connectToRedundantHosts zu starten, da ansonsten der andere Server nicht weiss, dass der CTRL Manager läuft, da der Event Manager nur auf seinen lokalen connections dp schreibt.

[httpServer] pngCompression

Typ
int
Default
100
Wertebereich
0..100
Definiert die Kompression der übertragenen png Daten. 0 = keine Kompression (schnell, aber nutzt mehr Bandbreite), 100 = max Kompression (langsamer, nutzt weniger Bandbreite)

[httpServer] strictTransportSecurityMaxAge

Typ
uint
Default
31536000 (= ~1 year)
Legt den Wert für den "max-age" Parameter fest der für die Strict-Transport-Security des HTTP Servers verwendet wird. Wenn der Wert 0 oder kein Wert gesetzt wurde wird die Strict-Transport-Security nicht verwendet. Hinweis: Sollten Probleme mit untrusted Zertifikaten auftreten, kann dieser Wert auf 0 gesetzt werden. Dies öffnet jedoch ein Sicherheitsleck.

[httpServer] uiArguments

Typ
string
Default
-p vision/login.pnl -centered -iconBar -menuBar
Startparameter für den Ultralight Client 2.0. Es wird ein UI Manager gestartet, daher sind die selben Kommandozeilen-Argumente wie beim UI Start aus der Console möglich. Der HTTP Server gibt jedoch folgende Argumente immer automatisch mit:
  • -lang XXXX ... aktive Sprache für das UI, abhängig von der vom Web-Browser empfangenen gewünschten Sprache
  • -server XXXXX ... Wenn der HTTP Server nicht auf dem selben Rechner wie der Event Manager läuft, so wird davon ausgegangen, dass der UI Manager die Projekt-Files (Panels, CTRL-Libs, etc.) nicht von der lokalen Platte lesen kann, sondern das UI wird sich hiermit die Files vom Hauptserver per HTTP Request laden. Dies benötigt einen laufenden HTTP Server auf dem Rechner auf dem der Event Manager läuft (im Falle eines redundanten Projektes müssen somit auf beiden Redu Rechnern jeweils ein HTTP Server laufen) Dieses Verhalten kann mit dem config Eintrag 'uiUsesMainServerAsFileServer = 0' deaktiviert werden

[httpServer] uiStartPermissionBit

Typ
int
Default
-1
Definiert das Benutzer-Berechtigungsbit welches gesetzt sein muss, damit der User einen ULC 2.0 Client verwenden kann. Damit der HTTP Server den User der Anfrage kennt, muss er mit Authentifizierung betrieben werden (z.B. "Basic", "Negotiate").

[httpServer] uiUsesMainServerAsFileServer

Typ
bool
Default
1
Wertebereich
0|1
Definiert, ob der HTTP Server, falls er auf einem anderen Host als der Event Manager läuft, die -server XXX Option dem ULC 2.0 User Interface übergibt, sodass sich dieses die Projekt-Files vom Hauptserver via HTTP Requests holt, anstatt diese von der lokalen Platte zu lesen. Es wird allerdings empfohlen, die Projekt-Files lokal auf dem HTTP Server zu halten und diese Option auf 0 zu setzen, wie in der Dokumentation zur ULC UX Architektur beschrieben.

[httpServer] ulcAliveTimeout

Typ
uint
Default
60
Der Timeout in Sekunden nachdem ein UI Manager eines nicht erreichbaren ULC UX Clients (z.B. durch einen Ausfall des Netzwerks) beendet wird.
  • Bei einem Wert von 0 wird kein Timeout angewandt
  • Bei einem Wert der innerhalb des Intervalls [1..10] liegt wird ein Timeout von 10 Sekunden angewendet
  • Wenn der Wert nicht gesetzt wird erfolgt ein Timeout nach 60 Sekunden

[httpServer] ulcUseClientTimeZone

Typ
bool
Default
0 on Windows, 1 on all other platforms
Wertebereich
0|1
Definiert welche Zeitzone zur Anzeige von Zeitwerten in ULC UX Clients verwendet wird. Bei 1(true) wird die Zeitzone des ULC UX Clients angewendet, bei 0(false) die Zeitzone des Servers. Aufgrund der in Windows eingeschränkten Unterstützung für die Verwendung einer anderen Zeitzone für einen einzelnen Prozess ist das Defaultsetting hier 0. Sollte ulcUseClientTimeZone in Windows auf 1 gesetzt werden können folgende Probleme auftreten:
  • unvollständige historische Informationen über die Zeitzonen
  • ungenaue oder fehlende Zeitangaben für die Wechsel zwischen Sommer- und Winterzeit
  • keine Unterstützung der Sommerzeit auf der Südhalbkugel

[httpServer] XFrameOptions

Typ
string
Default
SAMEORIGIN
Wertebereich
none

Eine Sicherheitsmaßnahme verbietet, Inhalte von einer anderen Webseite einzubetten. Man spricht auch von ?clickjacking? Protection.

Um trotzdem Inhalte von einem fremden Server auf der eigenen verwalteten Webseite anzuzeigen, gibt es den HTML Header Parameter X-Frame-Options der dieses Verhalten konfigurierbar macht.

Dieser Parameter muss am fremden Server gesetzt sein und die URL des eigenen Server beinhalten um fremde Inhalten auf den eignen Server darstellen zu können.

Es gibt vier verschiedene Optionen für diesen Config-Eintrag:

  • "none": deaktiviert den XFrameOptions-Eintrag.
  • "DENY": Fremde Inhalte von einem fremden Server werden nicht geladen.
  • "SAMEORIGIN": Es werden nur Inhalte vom eigenen Server geladen.
  • "ALLOW-FROM": Es können nur Inhalte geladen werden für welche der X-Frame-Options HTML Header Parameter korrekt gesetzt wurde. Muss am fremden Server konfiguriert werden.

Beispiel:

Erster Server: www.myFirstServer.com

Zweiter Server: www.mySecondServer.com

Um den Inhalt des zweiten Servers innerhalb des ersten Servers anzuzeigen (z.B. mittels iframe) muss der zweite Server innerhalb des HTML Headers die der Parameter "XFrameOptions: ALLOW-FROM http://www.myFirstServer.com" mitliefern. Dies kann über folgenden Eintrag innerhalb der Config des zweiten Webservers konfiguriert werden.

[httpServer]
XFrameOptions = "ALLOW-FROM http://www.myFirstServer.com"