Skip to main content

xSuite Interface Windows Prism 5.x – Online-Hilfe

xSuite Helix Proxy

Der xSuite Helix Proxy ist ein spezieller Webservice, der unabhängig von den regulären Verarbeitungsszenarien läuft. Dieser Webservice agiert wie ein HTTP-Proxy-Server und dient ausschließlich dazu, HTTP-Anfragen aus Fremdanwendungen an die xSuite Helix Cloud weiterzuleiten. Fremdanwendungen unterstützten das Keycloak-Authentifizierungsverfahren in der Regel nicht von sich aus. Die zentrale Aufgabe des xSuite Helix Proxys besteht darin, das benötigte Token vom Keycloak-Server abzurufen und in den HTTP-Kopfdaten der Anfragen zu ergänzen.

Der xSuite Helix Proxy ermittelt für jede eingehende Anfrage anhand der HTTP-Methode und des URL-Pfades der Anfrage eine passende Regel. Diese Regel definiert die Zieladresse in der xSuite Helix Cloud, an die die Anfrage weitergeleitet wird. Die Weiterleitungsregeln werden in der Eigenschaft .Rule[] konfiguriert und zur Laufzeit in der Reihenfolge ihrer Definition ausgewertet. Die erste passende Regel wird herangezogen.

Hinweis

Im Fall von Mehrdeutigkeiten sollten die spezielleren Regeln vor den allgemeineren Regeln angegeben werden.

Der Proxy wird unter der gleichen Basisadresse aufgerufen wie die anderen internen Webservices, d.h. unter WebService.Url[]. Um zu unterscheiden, ob eine Anfrage an einen internen Service gerichtet ist oder vom Proxy an einen externen Service weitergeleitet werden soll, muss die Eigenschaft WebService.UrlBasePath gesetzt sein. Alle Anfragen, die mit diesem Basispfad beginnen, werden von den internen Services verarbeitet. Alle anderen Anfragen werden vom Proxy verarbeitet.

Ein Authentifizierungsverfahren, das für die internen Webservices definiert ist, gilt nicht für den Proxy. Der Proxy unterstützt für die eingehenden Anfragen grundsätzlich keine eigene Authentifizierung. Somit wird nur die Authentifizierung am Zielsystem durchgeführt, was in der Regel die Keycloak-Authentifizierung der xSuite Helix Cloud ist.

Hinweis

Der xSuite Helix Proxy sollte in einer eigenständigen Programminstanz laufen, die nicht gleichzeitig für die Ausführung regulärer Verarbeitungsszenarien zuständig ist. Auf diese Weise kann ein möglichst hoher Datendurchsatz gewährleistet werden.

Das zeitintensive Logging, insbesondere in eine relationale Datenbank, sollte reduziert oder komplett deaktiviert werden. Die Konfigurationseigenschaft .ContentLogFolder sollte nicht im regulären Betrieb genutzt werden.

Eigenschaft

Beschreibung

XSuiteHelixProxy.Activate

Wahrheitswert, ob der xSuite Helix Proxy aktiviert ist

Wenn dieser Wert fehlt, wird die Aktivierung des xSuite Helix Proxys daran festgemacht, ob mindestens eine notwendige Regel definiert ist

XSuiteHelixProxy.ProxyServer

Verbindungsdaten eines HTTP-Proxy-Servers

Wenn die Kommunikation zwischen dem xSuite Helix Proxy und der xSuite Helix Cloud über einen normalen HTTP-Proxy-Server erfolgen soll, sind hier die Verbindungsdaten anzugeben.

Syntax: siehe Proxy-Server-Verbindung

XSuiteHelixProxy.Keycloak(*)

Eigenschaften für die Authentifizierung gegenüber der xSuite Helix Cloud über einen Keycloak-Dienst

Syntax: siehe Keycloak-Authentifizierung

Achtung: Bei Weglassung dieser Angaben werden die Anfragen an den Proxy nicht um die Authentifizierungsdaten ergänzt.

XSuiteHelixProxy.RequestTimeout

optionaler Timeout-Wert in Sekunden für die Anfragen, die an die xSuite Helix Cloud weitergeleitet werden

Der Timeout-Wert gilt global für alle Anfragen. Standardmäßig ist kein Timeout gesetzt.

XSuiteHelixProxy.ForceConnectionClose

Wahrheitswert, ob die Verbindung zwischen Client und Proxy zwangsweise geschlossen wird (HTTP-Header "connection: close")

Standardwert: false (der vom Client übermittelte Wert wird berücksichtigt)

Hinweis

Zwischen dem Proxy und der xSuite Helix Cloud wird die Verbindung hingegen grundsätzlich sofort wieder geschlossen, da der Proxy in diese Richtung keine Verwaltung offener Verbindungen implementiert.

XSuiteHelixProxy.ForceProtocolVersion

optionale Angabe einer festen HTTP-Protokollversion für die Anfrage vom Proxy an die xSuite Helix Cloud, z. B. 1.1 oder 2.0

Standardmäßig wird die Version genutzt, die vom Client an den Proxy übermittelt wird.

XSuiteHelixProxy.CacheFileFilter

optionaler Dateinamensfilter für Web-Dateien aus der xSuite Helix Cloud, die am Proxy zwischengespeichert werden

In der Regel sind dies nur statische Web-Dateien. Diese Dateien müssen dann nicht bei jedem Aufruf erneut aus der Cloud geladen werden.

XSuiteHelixProxy.ContentLogFolder

optionaler Ordnerpfad, in dem die vollständigen Inhalte der an den Proxy gestellten Anfragen und aus der xSuite Helix Cloud zurückgelieferten Antworten protokolliert werden

Diese Eigenschaft ist primär für Analysezwecke und sollte nicht im regulären Betrieb genutzt werden.

XSuiteHelixProxy.Rule[].Name

optionaler Name einer Weiterleitungsregel für die Anzeige im Logging

XSuiteHelixProxy.Rule[].Method

optionale kommaseparierte Auflistung von HTTP-Methoden (z. B."GET", "POST"), für die die Regel gilt

Standardwert: * (alle Methoden)

XSuiteHelixProxy.Rule[].Path*

URL-Pfad der Anfrage, für den die Regel gilt

Dabei ist nur der Teil der URL hinter der obigen .Url anzugeben, inklusive des vorangestellten /-Zeichens. Die Pfadangabe entspricht syntaktisch einem Namensfilter, d.h. auch Wildcard-Ausdrücke und reguläre Ausdrücke sind zulässig. Reguläre Ausdrücke müssen durch umschließende /-Zeichen gekennzeichnet werden.

XSuiteHelixProxy.Rule[].ToUrlMacro*

Feldmakroausdruck, der die vollständige Ziel-URL ergibt (inklusive Protokoll/Server/Port), an die die Anfrage weitergeleitet wird

Im Regelfall einer statischen Zieladresse ist hier eine String-Konstante anzugeben. Wenn die Zieladresse mit http(s): oder file: beginnt, wird die Konstante auch bei Weglassung der umgebenden Anführungszeichen als solche erkannt.

Bei der Variante file: stammen die Antwortdaten an den Client nicht aus der xSuite Helix Cloud. Stattdessen wird eine Standardantwort zurückgeliefert, deren Inhalt in einer Datei hinterlegt ist. Die Referenz auf diese Datei ist in der Form file:///{Dateipfad} oder file://{Server}/{Freigabe}/{Dateipfad} anzugeben. Syntaktisch muss der Inhalt dieser Datei einer HTTP-Antwort entsprechen, wie sie z. B. auch als Protokolldatei über die Eigenschaft .ContentLogFolder erstellt wird.

Wenn in .Path ein regulärer Ausdruck verwendet wird und in diesem Ausdruck Gruppierungen genutzt werden, kann der entsprechende Teilausdruck einer solchen Gruppe in der Syntax ${Gruppennummer} referenziert werden. Wenn der Ausdruck für den URL-Pfad beispielsweise /\/TestService(.*)/ ist, wird über die Gruppe (.*) der restliche Teil des Pfades dynamisch abgerufen und kann als $1 in der Ziel-URL platziert werden, z. B. http://testserver:8000/testservice$1.

XSuiteHelixProxy.Rule[].ResponseHeader[]

optionale Definition von HTTP-Kopfzeilen

Die HTTP-Kopfzeilen werden den Kopfzeilen aus der Originalantwort der xSuite Helix Cloud in der Antwort an den Client künstlich hinzugefügt oder die vorhandenen Kopfzeilen werden überschreiben.

Syntaktisch entspricht ein solcher Konfigurationswert dem normalen Aufbau einer Kopfzeile, d.h. {Name}: {Wert}.

Als Wert sind auch bestimmte Variablen nutzbar, die aus den Kopfdaten der ursprünglichen Client-Anfrage gewonnen werden. Die Syntax hierfür ist %RequestHeader.{Name}%. Auf diese Weise kann beispielsweise eine Antwort-Kopfzeile erstellt werden, die sich auf den "Origin"-Wert der Client-Anfrage bezieht: Access-Control-Allow-Origin: %RequestHeader.Origin%.

XSuiteHelixProxy.Rule[].RequestTimeout

optionaler Timeout-Wert in Sekunden für die an die xSuite Helix Cloud weitergeleiteten Anfragen

Der Timeout-Wert gilt nur für diese Regel. Dieser Timeout-Wert wird nur angewendet, wenn der Wert kleiner ist als der Wert in der übergeordneten Eigenschaft XSuiteHelixProxy.RequestTimeout.

Standardmäßig ist kein Timeout gesetzt.