Benutzen sie die linke oder die rechte Maustaste, um zur jeweils vorherigen bzw. nachfolgenden Änderung zu gelangen.
erste | letzte ![]() |
| Änderungen von: | |
| bis: | |
| Typ: | |
erste | letzte ![]() |
Diese Seite beschreibt, was zu tun ist, wenn die Datenbank eines Produktivsystems in ein bestehendes Test- oder Integrationssystem (im Folgenden „Testsystem“) übernommen wird und man sich danach wieder als Systemadministrator sadmin anmelden möchte. Sie gilt ab Webdesk 4.56 und richtet sich an Systemadministratoren und Berater. Grundlagen zur Konfigurationsdatei und zum Schlüssel finden Sie in Konfigurationsdatei webdesk.properties und Umgebungsvariablen.
Webdesk verschlüsselt Passwörter, die in der Datenbank gespeichert sind, mit einem Schlüssel (AES-256). Dazu gehört auch das Passwort von sadmin: Es ist kein gewöhnlicher Benutzer, sondern ein verschlüsselt gespeicherter Systemparameter. Bei jeder Anmeldung entschlüsselt Webdesk den gespeicherten Wert und vergleicht ihn mit dem eingegebenen Passwort.
Der Schlüssel liegt aber nicht in der Datenbank, sondern bei der Installation: im Eintrag webdesk.encryption.key der Datei webdesk.properties oder in der Datei enc.key. Das Testsystem hat seinen eigenen Schlüssel. Nach der Übernahme enthält die Datenbank Werte, die mit dem Schlüssel des Produktivsystems verschlüsselt wurden, das Testsystem entschlüsselt sie aber weiter mit seinem eigenen Schlüssel:
Produktivsystem: Datenbank (verschlüsselt mit Schlüssel P) + webdesk.properties mit Schlüssel P
Testsystem: Datenbank übernommen (Schlüssel P) + webdesk.properties mit Schlüssel T
→ Entschlüsseln mit T schlägt fehl
Folgen:
sadmin scheitert, auch mit dem richtigen (produktiven) Passwort. Im Log steht eine Meldung mit javax.crypto.AEADBadTagException: Tag mismatch.Die Lösung ist, dem Testsystem den Schlüssel des Produktivsystems zu geben.
Achtung: Mit der Produktivdatenbank übernimmt das Testsystem auch die Konfiguration des Produktivsystems, z. B. Zeiterfassungs-Anbindungen, Konnektoren, E-Mail-Versand und geplante Jobs. Sobald die Passwörter wieder entschlüsselt werden können, kann das Testsystem auf produktive Umsysteme zugreifen, Daten schreiben oder E-Mails versenden. Prüfen und deaktivieren bzw. umstellen Sie diese Einstellungen, bevor Sie das Testsystem mit dem Produktivschlüssel in Betrieb nehmen.
Hinweis: Mit dem Produktivschlüssel kann das Testsystem alle verschlüsselten Produktivdaten lesen. Schützen Sie die Konfiguration des Testsystems danach genauso wie die des Produktivsystems.
Viele Installationen melden die Benutzer über einen Reverse Proxy an, der den Benutzernamen in einem HTTP-Header an Webdesk übergibt (Systemparameter AuthenticationOptions.ssoHeaderNameRemoteUser, Standard X-Remote-User). Webdesk übernimmt den Header aber nur für Anfragen, deren URL mit dem Systemparameter AuthenticationOptions.ssoHeaderAuthenticationValidationUrl beginnt, z. B. https://<prod-host>/webdesk/.
Diese Systemparameter stehen in der Datenbank und werden bei der Übernahme mitkopiert. Im Testsystem passt die Prüf-URL des Produktivsystems dann nicht zur Adresse des Testsystems. Folge: Bei jeder Anfrage mit dem Header scheitert die automatische Anmeldung mit einer java.lang.NullPointerException in AuthenticationUtils.getNormalizedUser, jedes Mal mit vollständigem Stacktrace im Log und in catalina.out. Die Log-Dateien wachsen dadurch schnell, bis das Laufwerk voll ist und der Server ausfällt. Ein niedrigeres Log-Level verhindert das nicht. Ändern Sie die Prüf-URL
Betroffene Versionen: Der Fehler ist mit WD-23236 behoben, voraussichtlich ab Webdesk 4.63.35 und 4.65.3 sowie in allen späteren Versionen. Betroffen sind alle älteren Versionen, also 4.63 bis 4.63.34, 4.65 bis 4.65.2, die gesamte Version 4.64 und alle Versionen vor 4.63 (z. B. 4.59). Prüfen Sie die tatsächliche Version mit den Release Notes.
sadmin in der Maske „Systemparameter“, ohne Eingriff in die Datenbank.
Bei betroffenen Versionen ändern Sie die Prüf-URL daher vor dem ersten Start des Testsystems auf dessen Adresse. Da eine Anmeldung zu diesem Zeitpunkt noch nicht möglich ist, geschieht das direkt in der Datenbank des Testsystems, bei gestopptem Webdesk und nach einer Sicherung der Tabellen PoBeanProperty und PoBeanPropertyValue:
SELECT p.propertyName, v.property
FROM PoBeanProperty p JOIN PoBeanPropertyValue v ON v.BEAN_UID = p.BEAN_UID
WHERE p.beanName = 'AuthenticationOptions'
AND p.propertyName IN ('authenticationMode', 'ssoHeaderNameRemoteUser', 'ssoHeaderAuthenticationValidationUrl');
UPDATE PoBeanPropertyValue SET property = 'https://<test-host>/webdesk/'
WHERE BEAN_UID = (SELECT BEAN_UID FROM PoBeanProperty
WHERE beanName = 'AuthenticationOptions'
AND propertyName = 'ssoHeaderAuthenticationValidationUrl');
authenticationMode auf DB.webdesk.properties reicht nicht: Beim Start haben die Werte aus der Datenbank Vorrang.Ist das Testsystem bereits mit der falschen Prüf-URL gestartet: Webdesk stoppen, den Reverse Proxy vorübergehend keinen Header senden lassen (oder Webdesk direkt ohne Proxy aufrufen), Log-Dateien entfernen, um wieder Platz zu schaffen, und dann die Prüf-URL wie oben ändern.
webdesk.properties des Testsystems anlegen (und von enc.key, falls vorhanden).webdesk.properties des Produktivsystems steht unter webdesk.encryption.key.source, wo der Schlüssel liegt: webdesk_properties: Der Schlüssel ist der Wert von webdesk.encryption.key in derselben Datei.file: Der Schlüssel steht in der Datei enc.key neben webdesk.properties.webdesk.encryption.key.source = webdesk_properties webdesk.encryption.key = <Schlüssel des Produktivsystems>oder
enc.key durch die Datei des Produktivsystems ersetzen und webdesk.encryption.key.source = file setzen (der Eintrag webdesk.encryption.key entfällt dann). Bei mehreren Knoten auf jedem Knoten.webdesk.properties sind mit dem bisherigen Schlüssel des Testsystems verschlüsselt und passen nach dem Schlüsselwechsel nicht mehr. Ohne diesen Schritt kann sich das Testsystem nicht mehr mit seiner Datenbank verbinden. Den Schritt brauchen Sie nur, wenn webdesk.credentials.encrypted = true gesetzt ist; bei false (Klartext) oder beim alten Eintrag webdesk.connection.encrypted hängen die Werte nicht vom Schlüssel ab. Zwei Möglichkeiten: webdesk.credentials.encrypted und shark.credentials.encrypted löschen (nicht auf false setzen): webdesk.connection.username = <Datenbank-Benutzer> webdesk.connection.password = <Datenbank-Passwort> shark.connection.username = <Datenbank-Benutzer> shark.connection.password = <Datenbank-Passwort>Beim nächsten Start verschlüsselt Webdesk die Werte mit dem neuen Schlüssel, trägt die Einträge
...credentials.encrypted = true wieder ein und speichert die Datei. Der Benutzer, unter dem Webdesk läuft, braucht dafür Schreibrechte auf die Datei. Bei false würde Webdesk die Werte als gewollten Klartext stehen lassen.manageWebdeskDBProps.bat im Verzeichnis bin von Tomcat starten, „Basic“-Modus wählen und im Menü die Option zur Eingabe neuer Werte verwenden. Das Werkzeug verschlüsselt die eingegebenen Werte mit dem Schlüssel aus der Datei. Verwenden Sie dafür nicht die Parameter webdeskLogin= / webdeskPassword= des „Expert“-Modus: Bei bereits verschlüsselten Dateien werden sie unverschlüsselt gespeichert. Das Werkzeug unterstützt nur webdesk.encryption.key.source = webdesk_properties.ssoHeaderAuthenticationValidationUrl jetzt in der Datenbank auf die Adresse des Testsystems ändern; bei Versionen mit Fehlerbehebung kann das nach der Anmeldung in der Maske „Systemparameter“ geschehen (siehe Abschnitt „Anmeldung über Reverse Proxy“).webdesk.properties die Zugangsdaten wieder verschlüsselt (als Base64-Text) stehen.sadmin mit dem Passwort des Produktivsystems anmelden.webdesk.properties (bzw. enc.key) des Testsystems neu sichern.java.lang.NullPointerException in AuthenticationUtils.getNormalizedUser, bis das Laufwerk voll ist: Die Prüf-URL für die Anmeldung per Reverse-Proxy-Header ist noch die des Produktivsystems, und die Version enthält die Fehlerbehebung noch nicht (siehe Abschnitt „Anmeldung über Reverse Proxy“).sadmin anmelden und ssoHeaderAuthenticationValidationUrl in der Maske „Systemparameter“ auf die Adresse des Testsystems ändern.
sadmin scheitert weiterhin, im Log steht AEADBadTagException: Das Testsystem verwendet nicht den Schlüssel des Produktivsystems. Prüfen Sie Schlüsselquelle und Schlüssel bzw. enc.key auf allen Knoten....credentials.encrypted stehen noch mit false in der Datei.sadmin-Passworts, lassen sich dann nicht wiederherstellen. Wenden Sie sich an den Webdesk-Support.| Mime Type | text/xml | ![]() | text/xml |
| Datei-name | ![]() | ||
| Größe (in Bytes) | 11312 | ![]() | 12899 |
|
Version 2 von Gabriel Gruber
am 28.10.26 16:50:55 Name: Produktivdatenbank in ein Testsystem übernehmen (Anmeldung als sadmin) Variante: main - default Status: Veröffentlichung | ![]() |
Version 3 von Gabriel Gruber
am 28.10.26 17:31:05 Name: Produktivdatenbank in ein Testsystem übernehmen (Anmeldung als sadmin) Variante: main - default Status: Veröffentlichung |