Installation neue UI ohne Docker
Diese Anleitung wird nicht mehr gepflegt. Wir empfehlen die Installation mit Docker.
Was beinhaltet diese Dokumentation:
Installation neue UI in einem Webserver (in diesem Fall nginx) mit neu aufgesetztem tomcat, abgesichert über Keycloak mit postgresql Datenbank auf einem Windows System. Keine Abgesicherte Verbindung der UI, über https.
VORSICHT: Wie empfehlen die neue UI über https abzusichern!
Voraussetzung:
Die folgende Installation setzt auf einer bereits bestehenden B2B mit Tomcat-Knoten und laufender Datenbank auf. Da die Admin UI erst in Kürze veröffentlicht wird, ist das ein einfacher Weg, laufende Services zu verwenden.
Zielbild:
Zum Schluss gehört zur Landschaft ein Tomcat mit alter Konfiguration (auf dem ggf. schon Nachrichten eingespielt wurden), ein neuer Tomcat mit Keycloak Konfiguration, ein Keycloak und ein nginx-Webserver in dem die neue UI läuft.
Kopie des bestehenden Tomcat Knoten anlegen (Teil 1)
Auf diesem Knoten sollten auch später keine Services laufen. Er ist nur für die UI Kommunikation zuständig.
- Kopiere den bereits bestehenden Tomcat Knoten um einen neuen anzulegen, alternativ kann auch eine neue tomcat.zip heruntergeladen und entpackt werden.
-
Änderung des Connector und des Shutdown Ports in der server.xml im conf-Ordner:
Server port="xxxx" shutdown="SHUTDOWN" Connector port="xxxx" protocol="HTTP/1.1"
Die Ports müssen sich vom bestehenden B2B Knoten unterscheiden, bitte nicht 8080 verwenden, da dies der Keycloak-Port sein wird.
Start Keycloak Installation im Standalone Mode
- Unter https://www.keycloak.org/downloads.html unter Server - Keycloak die zip-Datei herunter laden und entpacken.
- Ggf. Port Änderung in der standalone.xml: unter /standalone/configuration liegt die standalone.xml, im Abschnitt socket-binding-group kann der Port des socket-binding mit name=“http“ geändert werden, wenn es sich um https handelt auf 443, sonst 8080 behalten (darf sonst nicht mehr verwendet werden)
Aufsetzen neuer Datenbank für Keycloak (um Standard H2 Datenbank in Keycloak abzulösen)
- In diesem Beispiel wird eine neue database in der Postgres-Datenbank erzeugt
-
Über die B2B database einen keycloak user anlegen,dieser kann auch anders benannt werden:
create user keycloak alter user keycloak password 'PASSWORT'
-
Neue Datenbank mit keycloak owner anlegen
CREATE DATABASE keycloak WITH OWNER = keycloak ENCODING = 'UTF8' CONNECTION LIMIT = -1;
-
Neue connection anlegen
- Datenbank-Treiber in Keycloak hinterlegen: unter /modules/system/layers/keycloak/org einen Ordner anlegen, z.B postgresql/main und dort die postgresql.jar hinterlegen, die auch im lib-Verzeichnis des Tomcats hinterlegt ist.
-
Im selben Verzeichnis eine module.xml anlegen (siehe unten), in dieser muss der Name der Treiber-jar verwendet werden.
module.xml
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="org.postgresql"> <resources> <resource-root path="postgresql.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> <module name="javax.servlet.api" optional="true"/> </dependencies> </module>
-
Im keycloak unter /standalone/configuration die standalone.xml anpassen: unter datasources die datasource für postgresql zusätzlich zu den H2 Informationen hinterlegen. Vorsicht: connection-url entsprechen der eigenen Konfiguration hinterlegen, sowie auch beim username und password
<datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}"> <connection-url>jdbc:postgresql://localhost:5432/keycloak</connection-url> <driver>postgres</driver> <security> <user-name>Username</user-name> <password>PASSWORT</password> </security> </datasource>
-
Falls schon eine datasource zum datasource jndi-name=”java:jboss/datasources/KeycloakDS” existiert, muss diese gelöscht werden, so dass nach der Bearbeitung nur noch zwei datasource-tags existieren, siehe nachfolgenden Screenshot
-
Zweite Anpassung der standalone.xml: unter drivers den driver für postgres hinterlegen, zusätzlich zu dem der H2 Datenbank
<driver name="postgres" module="org.postgresql"> <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> </driver>
Keycloak NLI Theme
Die Standard Keycloak Oberfläche kann durch ein NLI Theme ersetzt werden. Die Installation ist hier beschrieben.
AdminAccount, Realm und ersten User in Keycloak anlegen
- Start von Keycloak über die standaolne.bat in /bin
-
Zuerst muss ein admin account in keycloak angelegt werden
Folgende Variante funktioniert, wenn der Keycloak auf dem eigenen Rechner installiert wurde (sonst springe zu Punkt 4)
-
Öffnen von http://localhost:8080/auth (hier muss der Port verwendet werden, der in der standalone.xml eingetragen ist) und User und Passwort für einen admin account eingeben
-
ALTERNATIVE: Zum Anlegen des admin-Users. Über die Konsole ins bin-Verzeichnis des Keycloak navigieren und dort folgendes eingeben:
add-user-keycloak.bat -r master -u <username> -p <password>
- Auf Administration Console auf der Welcome Page klicken oder über http://localhost:8080/auth/admin/ in den admin account einloggen (TIP: falls der Browser beim Anmelden in Keycloak ein Cache Problem anzeigt, kann eine Inkognito Sitzung verwendet werden)
-
Realm anlegen: Add realm anklicken und einen Namen für den Realm eingeben. Im Bild unten wird NLI als Realm-Name verwendet. Normalerweise sollte der Realm-Name das System beschreiben, da je System ein Realm benötigt wird. Das heißt möglichst sollte Dev/QA/Prod oder ähnliches im Namen enthalten sein, sowie Netz/Lief, sollte es getrennte Systeme geben.
- Create anklicken
-
In den realm wechseln, der gerade angelegt wurde (siehe nächster Screenshot, dort ist der realm NLI ausgewählt)
-
User in diesem Realm anlegen: Unter Users(links in der Leiste) rechts auf Add user gehen
- Namen im Feld Username eingeben und auf Save klicken
-
Credentials Tab auswählen und Passwort festlegen: hier kann Temporary angeklickt werden um dieses ggf. beim ersten Login nochmal zu ändern
HINWEIS: Über User Federation können User alternativ über LDAP eingebunden werden oder aus der B2B-DB migriert werden (für das Migrations-Tool siehe weiter unten)
Test des neu angelegten Users in Keycloak (TIPP: falls der Browser beim Anmelden in Keycloak ein Cache Problem anzeigt, kann eine Inkognito Sitzung verwendet werden)
- Sign Out aus der admin Console (rechts oben Sign Out auswählen)
- Über http://localhost:8080/auth/realms/NLI/account mit dem neu angelegten User einloggen und ggf. das Passwort ändern, falls es beim Erstellen des Users angehakt wurde
- In der Account Console die sich öffnet Email, First name und Last name eintragen und speichern
Einrichtung von zwei clients im Keycloak für das B2B-Backend und die neue UI
Pro Anwendung, Service oder Microservice, welcher zu einer Landschaft von Anwendungen gehört muss im Realm ein Client angelegt werden. Dazu muss wieder in den admin account des Keycloaks gewechselt werden.
-
Erstellen eines Clients für das B2B-Backend (in der Navigation auf client und dann auf create): Vorschlag Client ID: b2b-tomcat. Die Root-URL sieht wie folgt aus:
http://<host>:<port>/b2bbp-engine/
, wobei der Port der connector Port aus der server.xml des tomcat Knotens ist (siehe hierzu den nächsten Abschnitt Tomcat Knoten mit Keycloak Anbindung aufsetzen, in dem dieser Port nochmal geändert wird) - Bei den clients muss der Standard Flow Enabled sein. Als AccessType ist beim b2b-tomcat confidential zu setzen.
- Erstellen eines weiteren Clients für die B2BUI: Name des clients kann gewählt werden, z.B. b2b-functional-ui sein.
-
Der Port in der Root URL ist wählbar, Vorschlag ist hier 80 (Screenshots sind mit Port 4040). Er findet sich unten im Abschnitt Installation neue UI im Webserver wieder
-
Für einen client, der zur UI gehört muss der Standard Flow Enabled aktiviert sein, die anderen beiden müssen deaktiviert sein, siehe folgenden Screenshot. Als access-type ist bei Frontends public zu setzen.
Tomcat Knoten mit Keycloak Anbindung aufsetzen (Teil 2)
-
Tomcat-Adapter von Keycloak muss verwendet werden: Hier https://www.keycloak.org/downloads.html kann der Tomcat-Adapter für die entsprechende Tomcat-Version heruntergeladen werden
- Die jar-Dateien müssen im tomcat/lib- Verzeichnis des unter Teil 1 aufgesetzten Tomcat-Knoten, hinterlegt werden
-
Anlegen der keycloak.json unter /tomcat_all: es muss der korrekte realm Name verwendet werden, der gewählte Port aus der standalone.xml des Keycloak, sowie als resource der client-Name des Clients der für das Backend erstellt wurde. Vorschlag war hier b2b-tomcat.
{ "realm": "NLI", "auth-server-url": "http://localhost:8080/auth", "ssl-required": "external", "resource": "b2b-tomcat-war", "confidential-port": 0 }
-
Anpassung der b2bbp-engine.xml: Folgende Zeilen müssen vor der resource hinterlegt werden, wobei
<my-path>
mit dem entsprechenden Pfad zum tomcat_all-Ordner ist, unter dem die keycloak.json liegt<Valve className="org.keycloak.adapters.tomcat.KeycloakAuthenticatorValve"/> <Parameter name="keycloak.config.file" value="<my-path>/tomcat_all/keycloak.json" override="false"/>
-
Anpassung server.xml im conf-Ordner: alle Einträge zu Realms müssen in der server.xml auskommentiert werden
-
Zur Absicherung der B2B REST-Endpunkte durch Keycloak muss folgende Eigenschaft an den
CATALINA_OPTS
in dersetenv.sh
ergänzt werden: -Dspring.profiles.active=roles-activated -
Die neue UI erfordert Anpassungen der B2B Datenbank.
-
Falls die Paginierung im Nachrichtenmonitor nicht funktioniert, muss beim Starten des Tomcats das zur jeweiliger Datenbankversion passende Hibernate Dialect angegeben werden. Dazu muss ein zusätzlicher JAVA_OPTS Startparameter gesetzt werden:
-Dhibernate.dialect=org.hibernate.dialect.<Dialect>
. Der Platzhalter muss mit dem datenbankspezifischen Dialect ersetzt werden, siehe hier: https://docs.jboss.org/hibernate/orm/current/javadocs/org/hibernate/dialect/package-summary.html. Zum Beispiel-Dhibernate.dialect=org.hibernate.dialect.Oracle9iDialect
für Oracle 9i Datenbank. - Wenn bei der Volltestsuche oder bei der Suche in Arbeitsvorräten Fehler vorkommen (z. B. “ORA-01795: maximum number of expressions in a list is 1000”), muss beim Starten des Tomcats folgende Java-Property gesetzt werden:
-DauxiliarySearchThreshold=1000
. Die UmgebungsvariableAUXILIARY_SEARCH_THRESHOLD
bewirkt dasselbe.
Installation neue UI im Webserver
- Download der nginx.zip Datei unter http://nginx.org/en/download.html
- Download des B2B-UI Releases über B2B Downloads
-
Entpacken beider zip Dateien und hinterlegen des Deployments (kompletter B2B-UI Ordner) in nginx/html
- Konfiguration der /conf/nginx.conf: der Abschnitt zum Server wird mit Nachfolgendem ersetzt: Der “listen”-Port muss dem Port aus dem vorher konfiguriertem Client für die functional-ui entsprechen. Des Weiteren muss die “proxy-pass”-Adresse des Tomcats, der über Keycloak abgesichert ist, hinterlegt werden, damit die neue UI auf diese zugreifen kann. Unter “location /B2B-UI/api/b2b-user-messages/system-messages” wird die Verbindung zu dem UserMessages-Microservices konfiguriert. Im ersten Schritt kann diese Konfiguration weggelassen oder auskommentiert werden.
server { listen 80; server_name localhost; absolute_redirect off; client_max_body_size 500M; #charset koi8-r; #access_log logs/host.access.log main; location /B2B-UI { alias html/B2B-UI; try_files $uri$args $uri$args/ /B2B-UI/index.html; } location /B2B-UI/b2bNews/ { proxy_pass https://b2bbp.next-level-help.org/feed.news.xml; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html/B2B-UI; } #proxy for rest api call location /B2B-UI/api/ { proxy_pass http://localhost:8080/b2bbp-engine/api/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; } location /B2B-UI/api/b2b-user-messages/system-messages { proxy_pass http://localhost:8888/system-messages; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; } }
Beachten Sie auch die Property
client_max_body_size 500M;
Diese Property bestimmt die maximale Dateigröße beim Fileupload. Dies ist z.B. beim Customizing Upload relevant. -
Hinterlegen einer keycloak.json unter /html/B2B-UI/assets/config (Ordner anlegen): unter oauthServerUrl ist der Server mit Port des konfigurierten Keycloaks zu hinterlegen (Portvorschlag war 8080), der keycloakRealm muss ebenfalls den entsprechenden Namen des realms beinhalten. Vorsicht: in dieser Installationsanleitung wird disableHttps auf true gesetzt
{ "auth-server-url": "http://localhost:8080/auth", "keycloakRealm": "NLI", "disableAuth": false, "disableHttps": true }
Standardmäßig muss die
keycloak.json
Datei im Verzeichnis/html/B2B-UI/assets/config
abgelegt werden. Mit Hilfe dernginx.conf
Datei können sie auch einen alternativen Ablageort definieren. So können sie leicht neue Versionen der B2B-UI deployen ohne dabei diekeycloak.json
erneut anpassen zu müssen. Fügen sie dafür die folgende Konfiguration in dienginx.conf
ein. Das Beispiel ist so konfiguriert, dass im Verzeichnisnginx/conf
nach derkeycloak.json
gesucht wird.# always use local keycloak.json to override the deployed keycloak.json location /assets/config/keycloak.json { root conf; try_files /keycloak.json @original; } # fallback to original file if the local keycloak.json is not found location @original { root B2B-UI; try_files $uri $uri/; }
-
Start des nginx über nginx.exe: es müssen zwei Prozesse im Task-Manager unter Details angezeigt werden
Weitere allgemeine Hinweise zum Starten von Services finden Sie hier.
-
Hinterlegen der Rollen in Keycloak
-
Zuweisen aller Rollen dem angelegten User: Den User auswählen und unter Role Mappings alle angelegten Rollen dem User assignen
- Aufruf der neuen Oberfläche über
http://<Server>:80/B2B-UI/
(ggf. auch hier neue Inkognito Sitzung verwenden)
Mandantentrennung
Die Konfiguration der Mandantentrennung ist hier beschrieben. Falls das Feature genutzt werden soll, muss die Extension TENANTS
konfiguriert werden. Außerdem muss jedem User in Keycloak ein Attribute tenants
zugewiesen werden.
Änderung des Keycloak Themes
Um bei der Anmeldung an der neuen UI nicht die Keycloak Anmeldemaske zu bekommen, macht es Sinn die Keycloak Seiten mit einem NLI Theme zu erweitern
- Unter https://nli-download.next-level-apps.com/PublicDL/B2B-UI/Keycloak-Erweiterungen/ die nlitheme.jar herunterladen
- Hinterlegen im keycloak Ordner unter standalone/deployments
-
Konfiguration im realm: (Für jeden angelegten realm muss das Thema hinterlegt werden) unter Realm Settings > Themes muss bei LoginTheme und AccountTheme nli ausgewählt werden. Dann Internationalization Enabled auf On stellen und Save klicken.
Installation der Admin UI ohne Docker
Anforderung
- Vorhandener Keycloak Server (siehe Installation neue UI ohne Docker)
- Bestehende B2B-Anwendung
- Laden Sie die Frontend-Anwendung herunter: http://b2bbp.next-level-help.org/b2b_rn__downloads.html
Frontend-Anwendung starten
Siehe Installation neue UI im Webserver. Bitte beachten Sie, dass das Verzeichnis der Frontend-Anwendung B2B-Admin-UI ist. Bitte verwenden Sie die folgende nginx.conf-Vorlage:
server {
listen <port number to be used>;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /B2B-Admin-UI {
alias /usr/share/nginx/html/B2B-Admin-UI/;
try_files $uri$args $uri$args/ /B2B-Admin-UI/index.html;
}
location /B2B-Admin-UI/portalConfig/ {
proxy_pass <Portal application url>/B2B-Portal-UI/assets/config/portal-config.json;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html/B2B-Admin-UI;
}
#proxy for rest api call
location /B2B-Admin-UI/api/ {
proxy_pass <B2B application url>/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
location /B2B-Admin-UI/api/revisionmanager {
proxy_pass <Revision Manager backend application url>/revisionmanager;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
location /B2B-Admin-UI/api/b2b-user-messages/system-messages {
proxy_pass <B2B-UserMessages-Service application url>/system-messages;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
Konfigurierbare NGINX-Eigenschaften
Eigenschaft Schlüssel | Kommentar | Beispiel |
---|---|---|
server.listen | HTTP-Port des Servers. Der Benutzer kann mehrere Ports hinzufügen. | 80 |
Portal proxy_pass | URL der Portal-Frontend-Anwendung | http://localhost:8080 |
B2B proxy_pass | URL der B2B-Backend-Anwendung | http://localhost:8080 |
B2B-UserMessages-Service proxy_pass | URL des B2B-UserMessages-Services | http://localhost:8080 |
Keycloak
Siehe Installation neue UI im Webserver. Bitte beachten Sie, dass das Verzeichnis der Frontend-Anwendung B2B-Admin-UI ist. Bitte verwenden Sie die folgende keycloak.json-Vorlage:
{
"realm": "<keycloak realm>",
"auth-server-url": "<keycloak auth server url>",
"ssl-required": "none",
"resource": "<keycloak client>",
"public-client": true,
"confidential-port": 0
}
Konfigurierbare Keycloak JSON
Eigenschaft Schlüssel | Kommentar | Beispiel |
---|---|---|
auth-server-url | URL des Keycloak-Auth-Servers | http://localhost:8080/auth |
realm | Keycloak-Realm | b2b-qa |
resource | Keycloak-resource, bitte benutzen Sie “admin-ui” | admin-ui |
Ausführung
Siehe Installation neue UI im Webserver. Bitte beachten Sie, dass der Pfad der Frontend-Anwendung B2B-Admin-UI lautet.
Installation der Revision Info UI ohne Docker
Anforderung
- Vorhandener Keycloak Server (siehe Installation neue UI ohne Docker)
- Vorhandene B2B-Datenbanktabelle
- b2bbp_data_revision
- Bestehende B2B-Anwendung
- Laden Sie die folgenden Anwendungen herunter:
- Revision (Backend)
- Revision-UI
- http://b2bbp.next-level-help.org/b2b_rn__downloads.html
- Java 17
Backend-Anwendung
Eigenschaften der Anwendung
Die Revision Info Backend-Anwendung liest die Eigenschaften aus der YAML-Datei. Der Benutzer kann die Datenbank- und Keycloak-Konfiguration in einer YML-Datei konfigurieren. Beispieldatei:
server:
port: <server http port>
spring:
main:
allow-bean-definition-overriding: true
jpa:
hibernate:
ddl-auto: validate
database-platform: <target database>
datasource:
url: <database url>
username: <database user name>
password: <database user password>
hikari:
maximumPoolSize: <maximum pool size>
keycloak:
enabled: true
auth-server-url: <keycloak auth server url>
realm: <keycloak realm>
resource: <keycloak client>
bearer-only: true
public-client: false
cors: true
Konfigurierbare Eigenschaften
Eigenschaft Schlüssel | Kommentar | Beispiel |
---|---|---|
server.port | HTTP-Port des Servers | 8080 |
spring.jpa.database-platform | Name der Zieldatenbank, mit der gearbeitet werden soll | org.hibernate.dialect.PostgreSQLDialect, etc. (https://docs.jboss.org/hibernate/orm/5.4/javadocs) |
spring.datasource.url | JDBC-URL der Datenbank | jdbc:postgresql://localhost:5432/postgres |
spring.datasource.username | Login-Benutzername der Datenbank | postgres |
spring.datasource.password | Passwort des Datenbank Benutzers | postgres |
spring.datasource.hikari.maximumPoolSize | maximal genutzen Datenbankverbindungen | 2 |
keycloak.auth-server-url | URL des Keycloak-Auth-Servers | http://localhost:8080/auth |
keycloak.realm | Keycloak-Realm | b2b-qa |
keycloak.resource | Keycloak-resource, bitte benutzen Sie “revisionInfo-ui” | revisionInfo-ui |
Keycloak
Keycloak-Eigenschaften können in Konfigurierbare Eigenschaften konfiguriert werden.
Der Clientzugriffstyp in Keycloak muss auf vertraulich (confidential) eingestellt sein.
Backend Anwendung starten
Die ausführbare jar-Datei kann über unsere B2B-Downloadseite heruntergeladen werden. Bitte führen Sie folgendes Script aus, um die jar-Datei auszuführen:
#!/bin/sh
export JAVA_HOME="/opt/jdk17.0.10"
PATH="$PATH;$JAVA_HOME"
export CLASSPATH=".:ojdbc11.jar"
java $JAVA_OPTS org.springframework.boot.loader.JarLauncher
Als JAVA_HOME
ist das entsprechende Verzeichnis zum JDK anzugeben. Seit dem Release
Im CLASSPATH
ist weiterhin Ihr Datenbank JDBC Treiber anzugeben. In diesem Beispiel handelt es sich um einen Oracle Treiber.
B2B-Tomcat-Kompatibilität
Um sicherzustellen, dass die B2B-tomcat auf den neuen Microservice des Revision Managers zugreifen kann, aktualisieren Sie bitte die Konfigurationsdatei der B2B-tomcat wie folgt: ergänzen Sie an der CATALINA_OPTS
in tomcat/bin/setenv.sh
-Drevision.info.server.url=<revision manager url>
Für die Windows-Version stellen Sie bitte eine der folgenden Optionen ein:
set CATALINA_OPTS=-Drevision.info.server.url=<revision manager url>
oder
set "CATALINA_OPTS=%CATALINA_OPTS% -Drevision.info.server.url=<revision manager url>"
Dieser B2B Workflow muss ebenso auf die keycloak.json zugreifen. Dafür muss der Classpath
gemäß http://b2bbp.next-level-help.org/ui_keycloak_tomcat_adapter.html#classpath angepasst werden.
Frontend-Anwendung starten
Siehe Installation neue UI im Webserver. Bitte beachten Sie, dass das Verzeichnis der Frontend-Anwendung B2B-RevisionInfo-UI ist. Bitte verwenden Sie die folgende nginx.conf-Vorlage:
server {
listen <port number to be used>;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /B2B-RevisionInfo-UI {
alias /usr/share/nginx/html/B2B-RevisionInfo-UI/;
try_files $uri$args $uri$args/ /B2B-RevisionInfo-UI/index.html;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html/B2B-RevisionInfo-UI;
}
#proxy for rest api call
location /B2B-RevisionInfo-UI/api/revisionmanager/ {
proxy_pass <Revision Manager backend application url>/revisionmanager/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
#proxy for rest api call
location /B2B-RevisionInfo-UI/api / {
proxy_pass <B2B backend application url>/b2bbp-engine/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
location /B2B-RevisionInfo-UI/api/b2b-user-messages/system-messages {
proxy_pass <B2B-UserMessages-Service application url>/system-messages;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
Konfigurierbare NGINX-Eigenschaften
Eigenschaft Schlüssel | Kommentar | Beispiel |
---|---|---|
server.listen | HTTP-Port des Servers. Der Benutzer kann mehrere Ports hinzufügen. | 80 |
Revision Manager proxy_pass | URL der Revision Manager-Backend-Anwendung | http://localhost:8080 |
B2B proxy_pass | URL der B2B-Backend-Anwendung | http://localhost:8080 |
B2B-UserMessages-Service proxy_pass | URL des B2B-UserMessages-Services | http://localhost:8080 |
Keycloak
Siehe Installation neue UI im Webserver. Bitte beachten Sie, dass das Verzeichnis der Frontend-Anwendung B2B-RevisionInfo-UI ist. Bitte verwenden Sie die folgende keycloak.json-Vorlage:
{
"realm": "<keycloak realm>",
"auth-server-url": "<keycloak auth server url>",
"ssl-required": "none",
"resource": "<keycloak client>",
"public-client": true,
"confidential-port": 0
}
Konfigurierbare Keycloak JSON
Eigenschaft Schlüssel | Kommentar | Beispiel |
---|---|---|
auth-server-url | URL des Keycloak-Auth-Servers | http://localhost:8080/auth |
realm | Keycloak-Realm | b2b-qa |
resource | Keycloak-resource, bitte benutzen Sie “revisionInfo-ui” | revisionInfo-ui |
Ausführung
Siehe Installation neue UI im Webserver. Bitte beachten Sie, dass der Pfad der Frontend-Anwendung B2B-RevisionInfo-UI lautet.
Installation des B2B-UserMessages ohne Docker
Anforderung
- Vorhandener Keycloak Server (siehe Installation neue UI ohne Docker)
- Vorhandene B2B-Datenbanktabelle
- b3p_adm_systemmessages
- Laden Sie die folgenden Anwendungen herunter:
- B2B-UserMessages-Service
- B2B-UserMessages-UI
- http://b2bbp.next-level-help.org/b2b_rn__downloads.html
- Java 8
Backend-Anwendung
Eigenschaften der Anwendung
Der B2B-UserMessages-Service liest die Eigenschaften aus der YAML-Datei. Der Benutzer kann die Datenbank- und Keycloak-Konfiguration in einer YML-Datei konfigurieren. Beispieldatei:
server:
port: <server http port>
spring:
main:
allow-bean-definition-overriding: true
jpa:
hibernate:
ddl-auto: update
database-platform: <target database>
datasource:
url: <database url>
username: <database user name>
password: <database user password>
hikari:
maximumPoolSize: <maximum pool size>
keycloak:
enabled: true
auth-server-url: <keycloak auth server url>
realm: <keycloak realm>
resource: <keycloak client>
bearer-only: true
public-client: false
cors: true
Konfigurierbare Eigenschaften
Eigenschaft Schlüssel | Kommentar | Beispiel |
---|---|---|
server.port | HTTP-Port des Servers | 8080 |
spring.jpa.database-platform | Name der Zieldatenbank, mit der gearbeitet werden soll | org.hibernate.dialect.PostgreSQLDialect, etc. (https://docs.jboss.org/hibernate/orm/5.4/javadocs) |
spring.datasource.url | JDBC-URL der Datenbank | jdbc:postgresql://localhost:5432/postgres |
spring.datasource.username | Login-Benutzername der Datenbank | postgres |
spring.datasource.password | Passwort des Datenbank Benutzers | postgres |
spring.datasource.hikari.maximumPoolSize | maximal genutzen Datenbankverbindungen | 2 |
keycloak.auth-server-url | URL des Keycloak-Auth-Servers | http://localhost:8080/auth |
keycloak.realm | Keycloak-Realm | b2b-qa |
keycloak.resource | Keycloak-resource, bitte benutzen Sie “b2b-usermessage” | b2b-usermessage |
Keycloak
Keycloak-Eigenschaften können in Konfigurierbare Eigenschaften konfiguriert werden.
Backend Anwendung starten
Die ausführbare jar-Datei kann unter https://nli-download.next-level-apps.com/PublicDL/B2B-UserMessages/candidate gefunden/heruntergeladen werden. Bitte führen Sie den folgenden Befehl aus, um die jar-Datei auszuführen:
java -jar <your dir>/<jar file>
Der Benutzer kann auch mit seinen eigenen Anwendungseigenschaften ausführen, indem er den folgenden Befehl ausführt:
java -jar <your dir>/<jar file> --spring.config.location=<application.yml path>
Frontend-Anwendung starten
Siehe Installation neue UI im Webserver. Bitte beachten Sie, dass das Verzeichnis der Frontend-Anwendung User-Message-UI ist. Bitte verwenden Sie die folgende nginx.conf-Vorlage:
server {
listen <port number to be used>;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /User-Messages-UI {
alias /usr/share/nginx/html/User-Messages-UI/;
try_files $uri$args $uri$args/ /User-Messages-UI/index.html;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html/User-Messages-UI;
}
#proxy for rest api call to message-service
location /User-Messages-UI/api/b2b-user-messages/ {
proxy_pass <B2B-UserMessages-Service application url>/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
#proxy for rest api call to tomcat
location /User-Messages-UI/api / {
proxy_pass <B2B backend application url>/b2bbp-engine/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
Konfigurierbare NGINX-Eigenschaften
Eigenschaft Schlüssel | Kommentar | Beispiel |
---|---|---|
server.listen | HTTP-Port des Servers. Der Benutzer kann mehrere Ports hinzufügen. | 80 |
B2B-UserMessages-Service proxy_pass | URL des B2B-UserMessages-Service | http://localhost:8080 |
B2B proxy_pass | URL der B2B-Backend-Anwendung | http://localhost:8080 |
system.json
Mit der Datei system.json
können weitere Einstellungen für jedes Frontend vorgenommen werden. Sie ist für jedes Frontend separat zu konfigurieren, enthält aber üblicherweise für jedes Frontend die gleiche Konfiguration.
In der Datei system.json
können der angezeigte Systemname sowie die angezeigte Hintergrundfarbe festgelegt werden.
Ferner ist durch sie das Feature UserMessages zu aktivieren.
{
"systemName": "B2B Dokusystem",
"backgroundColor": "#008ECC",
"activateUserMessages": true
}
Ähnlich wie die keycloak.json
ist die system.json
im Assets Ordner eines jeden Frontends hinterlegen. Beispielpfad für die B2B-UI:
/html/B2B-UI/assets/config/system.json
Keycloak
Siehe Installation neue UI im Webserver. Bitte beachten Sie, dass das Verzeichnis der Frontend-Anwendung User-Message-UI ist. Bitte verwenden Sie die folgende keycloak.json-Vorlage:
{
"realm": "<keycloak realm>",
"auth-server-url": "<keycloak auth server url>",
"ssl-required": "none",
"resource": "<keycloak client>",
"public-client": true,
"confidential-port": 0
}
Konfigurierbare Keycloak JSON
Eigenschaft Schlüssel | Kommentar | Beispiel |
---|---|---|
auth-server-url | URL des Keycloak-Auth-Servers | http://localhost:8080/auth |
realm | Keycloak-Realm | b2b-qa |
resource | Keycloak-resource, bitte benutzen Sie “user-messages-ui” | user-messages-ui |
Ausführung
Siehe Installation neue UI im Webserver. Bitte beachten Sie, dass der Pfad der Frontend-Anwendung User-Message-UI lautet.
Die Datei system.json kann als globale Konfiguration genutzt werden. Nach Möglichkeit sollte die gleiche Datei für alle Frontends verwendet werden.
In ihr können der angezeigte Systemname sowie die angezeigte Hintergrundfarbe festgelegt werden.
Ferner kann durch sie das Feature UserMessages aktiviert werden.
{ “systemName”: “B2B Dokusystem”, “backgroundColor”: “#008ECC”, “activateUserMessages”: true }
Index Management (Einrichtung ohne Docker)
Anforderung
- Vorhandener Keycloak. (siehe Installation eines neuen UI ohne Docker)
- Vorhandene Indexdateien.
- Laden Sie die folgenden Anwendungen herunter:
- Index (Backend)
- Index-UI
- http://b2bbp.next-level-help.org/b2b_rn__downloads.html
- Java 8
Backend-Anwendung
Eigenschaften der Anwendung
Die Backend-Anwendung liest die Eigenschaften aus der YAML-Datei. Der Benutzer kann die Datenbank- und Keycloak-Einstellungen in einer YAML-Datei konfigurieren. Die Eigenschaften sind unten dargestellt:
server:
port: <server http port>
spring:
main:
allow-bean-definition-overriding: true
search-system:
vendor: LUCENE2
search-types:
FULLTEXT: ../index/full
ARCHIVE: ../index/arc
CCM: ../index/ccm
SYSTEMSPLIT_METERINGPOINT: ../index/custom_index/systemsplit_meteringpoint
SYSTEMSPLIT_METERINGPOINTTEMP: ../index/custom_index/systemsplit_meteringpoint_temp
SYSTEMSPLIT_RESPONSE: ../index/custom_index/systemsplit_answer
keycloak:
enabled: true
auth-server-url: <keycloak auth server url>
realm: <keycloak realm>
resource: <keycloak client>
bearer-only: true
public-client: false
cors: true
Konfigurierbare Eigenschaften
Eigenschaft | Kommentar | Beispiel |
---|---|---|
server.port | HTTP-Port des Servers | 8080 |
keycloak.auth-server-url | URL des Keycloak-Auth-Servers | http://localhost:8080/auth |
keycloak.realm | Keycloak-Realm | b2b-qa |
keycloak.resource | Keycloak-resource, bitte benutzen Sie “indexmanagement” | indexmanagement |
search-system.vendor | Search system vendor. | LUCENE2 |
search-system.search-types | Search types. The key is the search type name; The value is the path of the index file. | FULLTEXT: ../index/full |
Migration der Extension SEARCH_LAYER_CONFIGURATION
Die Extension SEARCH_LAYER_CONFIGURATION wird in der neuen Backend-Anwendung nicht mehr verwendet. Bitte migrieren Sie die Extension, indem Sie der Struktur folgen:
search-system:
vendor: <SEARCH_SYSTEM_VENDOR>
search-types:
<SEARCH_TYPE>: <SEARCH_TYPE_PATH>
…
<SEARCH_TYPE>: <SEARCH_TYPE_PATH>
Beispiel
Mit der folgenden Extension SEARCH_LAYER_CONFIGURATION:
SEARCH_SYSTEM_VENDOR=LUCENE2
SEARCH_TYPES=EXAMPLE1,EXAMPLE2
EXAMPLE1_PATH=../tomcat_all/index/example1
EXAMPLE2_PATH=../tomcat_all/index/example2
Die migrierten Anwendungseigenschaften werden wie unten dargestellt sein:
search-system:
vendor: LUCENE2
search-types:
EXAMPLE1: ../tomcat_all/index/example1
EXAMPLE2: ../tomcat_all/index/example2
Keycloak
Keycloak-Eigenschaften können entsprechend dem o.a. Beispiel konfiguriert werden.
Ausführungen
Die ausführbare jar-Datei kann unter https://nli-download.next-level-apps.com/PublicDL/IndexManagement/candidate/ gefunden und heruntergeladen werden. Bitte führen Sie den folgenden Befehl aus, um die jar-Datei auszuführen:
java -jar <your dir>/<jar file>
Der Benutzer kann auch mit seinen eigenen Anwendungseigenschaften ausführen, indem er den folgenden Befehl ausführt:
java -jar <your dir>/< jar file> --spring.config.location=< application.yml path>
Frontend-Anwendung
Siehe Installation einer neuen Benutzeroberfläche auf dem Webserver. Bitte beachten Sie, dass das Verzeichnis der Frontend-Anwendung B2B-Index-Management-UI ist. Bitte verwenden Sie die folgende nginx.conf-Vorlage:
server {
listen <port number to be used>;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location/B2B-Index-Management-UI {
alias /usr/share/nginx/html/B2B-Index-Management-UI/;
try_files $uri$args $uri$args/ /B2B-Index-Management-UI/index.html;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html/B2B-Index-Management-UI;
}
#proxy for rest api call
location /B2B-Index-Management-UI/api/indexmanagement/ {
proxy_pass <Index Management backend application url>;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
#proxy for rest api call
location /B2B-Index-Management-UI/api/ {
proxy_pass <B2B backend application url>/b2bbp-engine/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
proxy_read_timeout 360s;
client_max_body_size 150M;
}
location /B2B-Index-Management-UI/api/b2b-user-messages/system-messages {
proxy_pass <B2B-UserMessages-Service application url>/system-messages;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
Konfigurierbare NGINX-Eigenschaften
Eigenschaft | Kommentar | Beispiel |
---|---|---|
server.listen | HTTP-Port des Servers. Der Benutzer kann mehrere Ports hinzufügen | 80 |
Index Management proxy_pass | URL der Index Management-Backend-Anwendung | http://localhost:8080 |
B2B Proxy_Pass | URL der B2B-Backend-Anwendung | http://localhost:8080 |
B2B-UserMessages-Service proxy_pass | URL des B2B-UserMessages-Services | http://localhost:8080 |
Keycloak
Siehe Installation neue UI im Webserver. Bitte beachten Sie, dass das Verzeichnis der Frontend-Anwendung B2B-Index-Management-UI ist. Bitte verwenden Sie die folgende keycloak.json-Vorlage:
{
"realm": "<keycloak realm>",
"auth-server-url": "<keycloak auth server url>",
"ssl-required": "none",
"resource": "<keycloak client>",
"public-client": true,
"confidential-port": 0
}
Konfigurierbare Keycloak JSON
Eigenschaft | Kommentar | Beispiel |
---|---|---|
auth-server-url | URL des Keycloak-Auth-Servers | http://localhost:8080/auth |
realm | Keycloak-Realm | b2b-qa |
resource | Keycloak-resource, bitte benutzen Sie “indexmanagement-ui” | indexmanagement-ui |
Ausführung
Siehe Installation neue UI im Webserver. Bitte beachten Sie, dass der Pfad der Frontend-Anwendung B2B-Index-Management-UI lautet.
Installation FSS UI
Die Anleitung für die FSS-UI finden Sie hier.
Portal-UI in Nginx installieren
Schritt 1: Konfiguration nginx.conf
- Um die Portal-UI nutzten zu können muss zudem die nginx.conf angepasst werden. Fügen Sie dazu die folgende Konfiguration zur nginx.conf im Ordner nginx\conf hinzu:
location /B2B-Portal-UI { alias html/B2B-Portal-UI/; try_files $uri$args $uri$args/ /B2B-Portal-UI/index.html; } location /B2B-UI/portalConfig/ { proxy_pass http://localhost:4040/B2B-Portal-UI/assets/config/portal-config.json; } location /B2B-Admin-UI/portalConfig/ { proxy_pass http://localhost:4040/B2B-Portal-UI/assets/config/portal-config.json; } location /B2B-RevisionInfo-UI/portalConfig/ { proxy_pass http://localhost:4040/B2B-Portal-UI/assets/config/portal-config.json; } location /B2B-Index-Management-UI/portalConfig/ { proxy_pass http://localhost:4040/B2B-Portal-UI/assets/config/portal-config.json; } location /User-Messages-UI/portalConfig/ { proxy_pass http://localhost:4040/B2B-Portal-UI/assets/config/portal-config.json; } location /B2B-Portal-UI/portalConfig/ { proxy_pass http://localhost:4040/B2B-Portal-UI/assets/config/portal-config.json; } location /FSS-UI/portalConfig/ { proxy_pass http://localhost:4040/B2B-Portal-UI/assets/config/portal-config.json; } #proxy for rest api call location /B2B-Portal-UI/api/ { proxy_pass http://localhost:8080/b2bbp-engine/api/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; proxy_read_timeout 360s; client_max_body_size 300M; } location /B2B-Portal-UI/api/b2b-user-messages/system-messages { proxy_pass <B2B-UserMessages-Service application url>/system-messages; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; }
Schritt 2: Kopieren Sie B2B-Portal-UI-Daten in den Ordner nginx\html. In unserem Beispiel wurden die Datein in den Ordner “B2B-Portal-UI” unter dem Pfad nginx\html installiert.
Schritt 3: Legen Sie die Datei portal-config.json unter nginx\html\B2B-Portal-UI\assets\config ab. Kopieren Sie außerdem die keycloak.json mit Ihrer korrekten Konfiguration nach nginx\html\B2B-Portal-UI\assets\config
Beispiel: Konfiguration von keycloak.json
{
"auth-server-url": "http://localhost:8070/auth",
"realm": "b2b-qa"
}
Schritt 4: Legen sie den neuen Client “portal-ui” in Keycloack an und fügen sie passende Redirect URI und Web Origin hinzu.
Das Ergebnis nach der Anmeldung:
## Konfiguration für Portal-UI
Die neue Portal-UI bietet eine grafische Oberfläche, aus der heraus ein einfacher Absprung in alle anderen neu geschaffenen UI’s möglich ist.
Damit es möglich wird aus der Portal-UI heraus in alle anderen verfügbaren UI’s abzuspringen müssen die Zugänge in der portal-config.json konfiguriert werden. Ein vollständige portal-config.json-Konfiguration kann wie folgt aussehen:
{
"portalConfig": [
{
"uiUrl": "http://localhost:4040/B2B-UI",
"uiRequiredRole": "B2B-Dashboard",
"uiName": "portalConfig.uiName.b2b",
"picturePath": "/B2B-Portal-UI/assets/config/images/p-b2b.jpg",
"iconName": "/B2B-Portal-UI/assets/config/icons/B2b.svg",
"description": "portalConfig.description.b2b"
},
{
"uiUrl": "http://localhost:4040/FSS-UI/",
"uiRequiredRole": "FSS-CertificateManager-Read",
"uiName": "portalConfig.uiName.fss",
"picturePath": "/B2B-Portal-UI/assets/config/images/p-security.jpg",
"iconName": "/B2B-Portal-UI/assets/config/icons/SecurityServer.svg",
"description": "portalConfig.description.fss"
},
{
"uiUrl": "http://localhost:4040/User-Messages-UI/",
"uiRequiredRole": "B2B-UserMessages-Write",
"uiName": "portalConfig.uiName.userMessages",
"picturePath": "/B2B-Portal-UI/assets/config/images/p-systemmessage.jpg",
"iconName": "/B2B-Portal-UI/assets/config/icons/systemmessage.svg",
"description": "portalConfig.description.userMessages"
},
{
"uiUrl": "http://localhost:4040/B2B-RevisionInfo-UI/",
"uiRequiredRole": "RevisionManager-Read",
"uiName": "portalConfig.uiName.revisionManager",
"picturePath": "/B2B-Portal-UI/assets/config/images/p-reversion-manager.jpg",
"iconName": "/B2B-Portal-UI/assets/config/icons/reversionmanager.svg",
"description": "portalConfig.description.revisionManager"
},
{
"uiUrl": "http://localhost:4040/B2B-Admin-UI/",
"uiRequiredRole": "B2BAdmin-Dashboard",
"uiName": "portalConfig.uiName.admin",
"picturePath": "/B2B-Portal-UI/assets/config/images/p-admin.jpg",
"iconName": "/B2B-Portal-UI/assets/config/icons/administration.svg",
"description": "portalConfig.description.admin"
},
{
"uiUrl": "http://localhost:4040/B2B-Index-Management-UI/",
"uiRequiredRole": "B2B-IndexManagement",
"uiName": "portalConfig.uiName.indexManagement",
"picturePath": "/B2B-Portal-UI/assets/config/images/p-indexmanagement.jpg",
"iconName": "/B2B-Portal-UI/assets/config/icons/index-management.svg",
"description": "portalConfig.description.indexManagement"
},
{
"uiUrl": "http://localhost:4040/B2B-Portal-UI/",
"uiRequiredRole": "B2BPortal-UI",
"uiName": "portalConfig.uiName.portal",
"picturePath": "/B2B-Portal-UI/assets/config/b2b-ui.jpg",
"iconName": "dashboard",
"description": "portalConfig.description.portal"
}
]
}
- Unter “uiUrl” werden die jeweiligen URL’s hinterlegt, unter denen die neuen Oberflächen erreichbar sind. Beispiel für B2B-UI: http://host.docker.internal:80/B2B-UI/.
- Unter “uiRequiredRole” ist die jeweilige Rolle einzutragen, die benötigt wird, um auf die jeweilige UI-Anwendung zugreifen zu können. Diese Rolle muss in Keycloack vorhanden sowie dem jeweiligen Benutzer zugeordnet sein.
- Unter “uiName” wird ein vordefinierter Wert angegeben, der nicht geändert werden sollte. Wenn Sie diesen Wert ändern möchten, müssen Sie den UI-Quellcode für (EN.json und DE.json) aktualisieren.
- Unter “picturePath” und “iconName” werden die Pfade für die Bilder der Portal-UI Kacheln definiert. Auch diese Werte sollten aus dem Beispiel übernommen und nicht geändert werden. In unserem Beispiel wurde der Portal-Ui Microservice im Ordner /B2B-Portal-UI installiert.
- Unter “description” werden die jeweiligen tooltips geladen. Auch diese Konfiguration sollte aus dem Beispiel übernommen werden
Metall Installation
Schritt 1: Kopieren Sie die folgende nginx.conf Vorlage
#user nobody;
worker_processes 1;
#Changed from /var/run/nginx.pid due to using non-root user
pid /tmp/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#access_log logs/access.log timing;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen <port number to be used>;
server_name <server name to be used>;
#client_max_body_size is to configure what is the maximum file size that the UI client can work for upload
client_max_body_size 100M;
absolute_redirect off;
#charset koi8-r;
#access_log logs/host.access.log main;
location /B2B-UI {
alias <ui application path>/B2B-UI/;
try_files $uri$args $uri$args/ /B2B-UI/index.html;
}
location /B2B-Admin-UI {
alias <ui application path>/B2B-Admin-UI/;
try_files $uri$args $uri$args/ /B2B-Admin-UI/index.html;
}
location /B2B-RevisionInfo-UI {
alias <ui application path>/B2B-RevisionInfo-UI/;
try_files $uri$args $uri$args/ /B2B-RevisionInfo-UI/index.html;
}
location /B2B-Index-Management-UI {
alias <ui application path>/B2B-Index-Management-UI/;
try_files $uri$args $uri$args/ /B2B-Index-Management-UI/index.html;
}
location /User-Messages-UI {
alias <ui application path>/User-Messages-UI/;
try_files $uri$args $uri$args/ /User-Messages-UI/index.html;
}
location /B2B-Portal-UI {
alias <ui application path>/B2B-Portal-UI/;
try_files $uri$args $uri$args/ /B2B-Portal-UI/index.html;
}
location /FSS-UI {
alias <ui application path>/FSS-UI/;
try_files $uri$args $uri$args/ /FSS-UI/index.html;
}
location /B2B-UI/b2bNews/ {
proxy_pass https://b2bbp.next-level-help.org/feed.news.xml;
}
location /B2B-UI/portalConfig/ {
proxy_pass <Portal-UI frontend application url>/B2B-Portal-UI/assets/config/portal-config.json;
}
location /B2B-Admin-UI/portalConfig/ {
proxy_pass <Portal-UI frontend application url>/B2B-Portal-UI/assets/config/portal-config.json;
}
location /B2B-RevisionInfo-UI/portalConfig/ {
proxy_pass <Portal-UI frontend application url>/B2B-Portal-UI/assets/config/portal-config.json;
}
location /B2B-Index-Management-UI/portalConfig/ {
proxy_pass <Portal-UI frontend application url>/B2B-Portal-UI/assets/config/portal-config.json;
}
location /User-Messages-UI/portalConfig/ {
proxy_pass <Portal-UI frontend application url>/B2B-Portal-UI/assets/config/portal-config.json;
}
location /B2B-Portal-UI/portalConfig {
alias <ui application path>/B2B-Portal-UI/assets/config/portal-config.json;
}
location /FSS-UI/portalConfig/ {
proxy_pass <Portal-UI frontend application url>/B2B-Portal-UI/assets/config/portal-config.json;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html/B2B-UI;
}
#proxy for rest api call
location /B2B-UI/api/ {
proxy_pass <B2B backend application url>/b2bbp-engine/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
#proxy read timeout is the total connection time when client UI send request to backend server. E.g. upload a big size file, then it need more connection time to upload, so a long timeout is required.
proxy_read_timeout 300s;
}
location /B2B-UI/api/b2b-user-messages/system-messages {
proxy_pass <B2B-UserMessages-Service application url>/system-messages;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
location /B2B-UI/api/revisionmanager {
proxy_pass <Revision Manager backend application url>/revisionmanager;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
#proxy for rest api call
location /B2B-Admin-UI/api/ {
proxy_pass <B2B backend application url>/b2bbp-engine/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
proxy_read_timeout 360s;
client_max_body_size 150M;
}
location /B2B-Admin-UI/api/revisionmanager {
proxy_pass <Revision Manager backend application url>/revisionmanager;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
location /B2B-Admin-UI/api/b2b-user-messages/system-messages {
proxy_pass <B2B-UserMessages-Service application url>/system-messages;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
#proxy for rest api call
location /B2B-RevisionInfo-UI/api/revisionmanager/ {
proxy_pass <Revision Manager backend application url>/revisionmanager/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
#proxy for rest api call
location /B2B-RevisionInfo-UI/api/ {
proxy_pass <B2B backend application url>/b2bbp-engine/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
location /B2B-RevisionInfo-UI/api/b2b-user-messages/system-messages {
proxy_pass <B2B-UserMessages-Service application url>/system-messages;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
#proxy for rest api call
location /B2B-Index-Management-UI/api/indexmanagement/ {
proxy_pass <Index Management backend application url>/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
#proxy for rest api call
location /B2B-Index-Management-UI/api/ {
proxy_pass <B2B backend application url>/b2bbp-engine/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
location /B2B-Index-Management-UI/api/b2b-user-messages/system-messages {
proxy_pass <B2B-UserMessages-Service application url>/system-messages;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
#proxy for rest api call to b2b-tomcat
location /User-Messages-UI/api/ {
proxy_pass <B2B backend application url>/b2bbp-engine/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
#proxy for rest api call to message-service
location /User-Messages-UI/api/b2b-user-messages/system-messages {
proxy_pass <B2B-UserMessages-Service application url>/system-messages;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
#proxy for rest api call
location /B2B-Portal-UI/api/ {
proxy_pass <B2B backend application url>/b2bbp-engine/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
location /B2B-Portal-UI/api/b2b-user-messages/system-messages {
proxy_pass <B2B-UserMessages-Service application url>/system-messages;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
#proxy for rest api call
location /FSS-UI/api/ {
proxy_pass <FSS backend application url>/fss/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
#proxy read timeout is the total connection time when client UI send request to backend server. E.g. upload a big size file, then it need more connection time to upload, so a long timeout is required.
proxy_read_timeout 60s;
}
location /FSS-UI/api/b2b-user-messages/system-messages {
proxy_pass <B2B-UserMessages-Service application url>/system-messages;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
location /FSS-UI/api/b2b-revision/revisionmanager {
proxy_pass <Revision Manager backend application url>/revisionmanager;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
}
Schritt 2: Ersetzen Sie die folgenden Platzhalter
Eigenschaft | Kommentar | Beispiel |
---|---|---|
ui application path | UI application path | /usr/share/nginx/html |
port number to be used | HTTP-Port des Servers | 8080 |
server name to be used | Servername | localhost |
Portal-UI frontend application url | URL der Portal UI-Frontend-Anwendung | localhost:8080 |
B2B backend application url | URL der B2B-Backend-Anwendung | localhost:8080 |
B2B-UserMessages-Service application url | URL der UserMessages-Backend-Anwendung | localhost:8080 |
Revision Manager backend application url | URL der Revision Manager-Backend-Anwendung | localhost:8080 |
Index Management backend application url | URL der Index Management-Backend-Anwendung | localhost:8080 |
FSS backend application url | URL der FSS-Backend-Anwendung | localhost:2222 |