Release Notes FirstSpirit™ 2023.8

Release Notes

FirstSpirit™ 2023.8

1 Administration

Standardwert für Kompressionsmodus: Zstandard

Mit der aktuellen FirstSpirit-Version ist der Kompressionsmodus Zstandard der Standardwert für FirstSpirit Protokoll-Kompression.

Das gilt für neue API-Verbindungen, Client-Verbindungseinstellungen und Servlets (web.xml).

Wenn die Verbindungsparameter bereits anders definiert wurden, bleiben die Einstellungen erhalten.

2 Administration / Module

Ankündigung: Umstellung auf Jakarta EE 6.0

Die Umstellung auf Jakarta EE 6.0 ist ein wesentlicher Schritt, um die Sicherheit der Webanwendungen zu gewährleisten.

Unterstützung und Zeitpunkt für Maßnahmen

Hier ist der aktuelle Plan:

  • Juni 2023: Beta-Version der FirstSpirit JakartaEE-Edition ist zum Testen verfügbar (erhältlich über Support)
  • August 2023: Stable Release (Version: 2023.9) mit Unterstützung für automatische Migration
  • August 2024: Die Unterstützung der automatischen Migration wird mit FirstSpirit 2024.9 eingestellt

Wir empfehlen dringend, die verwendeten Module und Instanzen so schnell wie möglich zu testen, um einen reibungslosen Übergang zu gewährleisten.

Die FirstSpirit-Installation kann betroffen sein, wenn eine der folgenden Bedingungen zutrifft:

  • Die FirstSpirit-Installation wird nicht in der Crownpeak Cloud gepflegt.
  • Es wird ein benutzerdefiniertes Modul verwendet, das eine WebApp-Komponente mit Code enthält, der die alte JavaEE-API verwendet, z. B. die Servlet-API.
  • Es wird ein benutzerdefiniertes Modul eingesetzt, das eine WebApp-Komponente mit Abhängigkeiten enthält, die das alte JavaEE-API verwenden, z. B. Spring Boot 2.x.

Das verwendete Modul könnte betroffen sein, wenn eine der folgenden Bedingungen erfüllt ist:

  • Das Modul enthält eine WebApp-Komponente mit Code, der die alte JavaEE-API verwendet, z. B. die Servlet-API.
  • Das Modul enthält eine WebApp-Komponente mit Abhängigkeiten, die die alte JavaEE-API verwenden, z. B. Spring Boot 2.x.

Wenn FirstSpirit in einem On-Premises-Szenario betreiben wird, muss beim Wechsel auf die FirstSpirit JakartaEE-Edition die Tomcat-Version aktualisiert werden. Da die Servlet-Version auf 6.0 aktualisiert wird, wird eine 10.1.x Version von Tomcat benötigt.

Weitere Informationen und Updates sind in der Crownpeak Community und in den ausführlichen Jakarta FAQ zu finden.
Bei Fragen oder Feedback zur Migration wenden Sie sich bitte an den Customer Support Team.

3 FirstSpirit Content Experience Tools (CXT)

Aktuelle Modul-Versionen

Folgende Modul-Versionen für FirstSpirit Content Experience Tools werden von FirstSpirit 2023.8 unterstützt.

Modul- / DateinameVersionsnummer
FirstSpirit CXT Plattform
platform-[version].fsm
4.0.0
FirstSpirit CXT DAP Bridge
dataservice-[version].fsm
1.44.13
FirstSpirit CXT FragmentCreator
fragment-creator-[version].fsm
4.0.8
FirstSpirit Fragment DAP
fragmentdap-[version].fsm
1.40.21
FirstSpirit Media DAP
mediadap-[version].fsm
1.31.12
FirstSpirit PageRef DAP
pageref-[version].fsm
1.9.12
FirstSpirit Markdown Editor
markdown-editor-[version].fsm
1.29.11
FirstSpirit Tagging Editor
tagging-editor-[version].fsm
1.29.11
FirstSpirit CXT FragmentCreator - CaaS Integration
caas-integration-[version].fsm
1.31.11

4 Modul-Entwicklung, Skripte, API

Events über SEO-URL-Änderungen

Mit der aktuellen FirstSpirit-Version ist es möglich, über den EventBusAgent (FirstSpirit Developer-API, Package de.espirit.firstspirit.agency) entsprechende Events über SEO-URL-Änderungen (Klasse de.espirit.firstspirit.event.UrlEvent) zu bekommen.

Beispiel-Skript:

import de.espirit.firstspirit.agency.BrokerAgent;
import de.espirit.firstspirit.event.UrlEvent;
import de.espirit.firstspirit.agency.EventBusAgent;
import java.util.function.Consumer;

eventListener = new Consumer<UrlEvent>() {
void accept(event) {
...
}
};

brokerAgent = context.requireSpecialist(BrokerAgent.TYPE);
specialistsBroker = brokerAgent.getBrokerByProjectName("<Projectname>");
eventBusAgent = specialistsBroker.requireSpecialist(EventBusAgent.TYPE);
eventBusAgent.register(UrlEvent.BUS_IDENTIFIER, eventListener);

// optional
Thread.sleep(<time>);
eventBusAgent.unregister(UrlEvent.BUS_IDENTIFIER, eventListener);

Die letzten beiden Zeilen sind optional und werden nur benötigt, wenn nicht dauerhaft auf die Events gehört werden soll.

5 Sicherheit

CSP-Header für die FirstSpirit Root-WebApp konfigurierbar

Indem eine Content Security Policy über den CSP-Header festgelegt wird, können die erlaubten Quellen von Inhalten wie Skripten, Stylesheets, Bildern, Schriftarten und mehr definiert werden.

Der CSP-Header kann über den SecurityFilter mit Hilfe des Parameters ContentSecurityPolicyHeader konfiguriert werden.

Der Parameters ContentSecurityPolicyHeader kann in den folgenden Dateien konfiguriert werden und wird mit folgender Priorität ausgewertet:

  • web.xml der WebApp [höchste Priorität]
  • fs-server.conf
  • Java System-Property
  • OS Environment Property [niedrigste Priorität]

Standardwert des CSP Headers:

default-src 'self'; object-src 'none'; style-src 'self'; form-action 'self'; 
script-src 'self' 'nonce-$NONCE' $UPGRADE_INSECURE $FRAME_ANCESTORS

Folgende Platzhalter können in der Konfiguration verwendet werden:

  • $NONCE - der für den aktuellen HTTP-Request gültige Nonce-Wert
  • $FRAME_ANCESTORS - erlaubte Frame-Einbettung gemäß des frameOptionsHeader Properties aus der fs-server.conf.
    Die Ersetzung mit Default-Einstellungen: ; frame-ancestors 'self'
    Ist ALLOW_ALL eingestellt, ist die Ersetzung ein Leerstring.
  • $UPGRADE_INSECURE - upgrade-insecure-requests gemäß dem, was für den SecurityFilter im Parameter TransportSecurity eingestellt ist bzw. dessen Standardwert.
    Der Standardwert ist KEEP_SECURE.
    Die Ersetzung mit Default-Einstellungen:
    • bei einem HTTPS-Request: ; upgrade-insecure-requests
    • bei einem HTTP-Request ist die Ersetzung ein Leerstring

web.xml der WebApp

Standardkonfiguration:

<filter>
<filter-name>SecurityFilter</filter-name>
<filter-class>de.espirit.firstspirit.io.servlet.SecurityFilter</filter-class>
<init-param>
<param-name>ContentSecurityPolicyHeader</param-name>
<param-value>default-src 'self'; object-src 'none'; style-src 'self';
form-action 'self';
script-src 'self' 'nonce-$NONCE' $UPGRADE_INSECURE $FRAME_ANCESTORS
</param-value>
</init-param>
</filter>

Ein leerer Wert deaktiviert den CSP-Header:

<filter>
<filter-name>SecurityFilter</filter-name>
<filter-class>de.espirit.firstspirit.io.servlet.SecurityFilter</filter-class>
<init-param>
<param-name>ContentSecurityPolicyHeader</param-name>
<param-value></param-value>
</init-param>
</filter>

fs-server.conf

Standardkonfiguration:

securityFilter.ContentSecurityPolicyHeader=default-src 'self'; object-src 'none'; 
style-src 'self'; form-action 'self';
script-src 'self' 'nonce-$NONCE' $UPGRADE_INSECURE $FRAME_ANCESTORS

Ein leerer Wert deaktiviert den CSP-Header:

securityFilter.ContentSecurityPolicyHeader=

Java System-Property

  • fs-wrapper.isolated.conf
  • setenv.sh Datei des Tomcats

Der Wert kann über den Parameter
wrapper.java.additional.##=-DsecurityFilter.ContentSecurityPolicyHeader gesetzt werden, wobei ## die Zahl eines bisher noch nicht verwendeten Eintrags ist.

OS Environment Property

Der Wert kann über die Variable mit dem Namen
SecurityFilter_ContentSecurityPolicyHeader definiert werden.

6 System

Aktualisierung von integrierter Fremdsoftware

Mit dem aktuellen FirstSpirit-Release wurde folgende intern verwendete Software aktualisiert:

  • Spring Boot
    Aktualisierung von Version 2.7.0 auf Version 2.7.13

Übersicht

ID Beschreibung Kategorien
CORE-10636

Bei Verwendung von NULL-Parameter-Werten in Ausgabekanälen konnte es dazu kommen, dass Template-Referenzen unvollständig erkannt wurden.

Vorlagenentwicklung
CORE-15193

Die Speicherdauer von FirstSpirit-Jar-Dateien auf Serverseite (Verzeichnis <FirstSpiritROOT>/work/storage/jars) und Clientseite (Verzeichnis /home/<fsuser>/.firstspirit_<version>/jars) wurde von 90 auf 45 Tage gesenkt.

FirstSpirit-Administrator
CORE-15252

Das neue Event mit der Klasse de.espirit.firstspirit.event.UrlEvent wird jetzt beim (Zurück-)Setzen von gespeicherten URLs erzeugt. Über den EventBusAgent kann auf solch ein Event reagiert werden.

Weitere Informationen können dem Kapitel „Modul-Entwicklung, Skripte, API: Events über SEO-URL-Änderungen“ entnommen werden.

Entwickler, Modul-Entwicklung
CORE-15377

Ein Fehler im SiteArchitect wurde behoben, der in seltenen Fällen die initiale Anzeige von Untermenüs im Kontextmenü verhinderte.

SiteArchitect
CORE-15378

Mit der aktuellen FirstSpirit-Version ist der Kompressionsmodus Zstandard der Standardwert für FirstSpirit Protokoll-Kompression.

Weitere Informationen können dem Kapitel „Administration: Standardwert für Kompressionsmodus: Zstandard“ entnommen werden.

Server-Administrator
CORE-15402

Mit der aktuellen FirstSpirit-Version kann der CSP-Header konfiguriert werden.

Weitere Informationen können dem Kapitel „Sicherheit: CSP-Header für die FirstSpirit Root-WebApp konfigurierbar“ entnommen werden.

FirstSpirit Startseite, FirstSpirit-Administrator, Server-Administrator
CORE-15417

Im „FirstSpirit Portal“ Modul („SAP Business Package for FirstSpirit“, fs-portal.fsm) wurde ein Classloading-Fehler in der Auftragsaktion „GeneratePortalXML“ behoben.

Module
CORE-15450

FirstSpirit Content Experience Tools: Aktuelle Modul-Versionen

Weitere Informationen können dem Kapitel „FirstSpirit Content Experience Tools (CXT): Aktuelle Modul-Versionen“ entnommen werden.

FirstSpirit Content Experience Tools (CXT)
CORE-15459

Der Dialog zum Bearbeiten der „Message of the Day“ wurde angepasst, damit es auch bei einer großen Anzahl von Sprachvorlagen nicht zu Darstellungsfehlern kommt.

ServerManager
CORE-15465

Aufträge mit Aktionen, die auf Modulen basieren, welche nicht mehr auf dem Server installiert sind, führten zu Darstellungsproblemen im ServerMonitoring. Dies wurde behoben.

Server-Administrator, ServerMonitoring
CORE-15466

Ein fehlender Admin-Status über eine Gruppenzugehörigkeit bei externen Benutzern, die sich erstmalig an einem Server anmelden, wurde behoben.

Server-Administrator
CORE-15507

Es wurde ein Fehler behoben, der in sehr seltenen Fällen dazu führen konnte, dass bei der Nutzung von „External Synchronization“ der Import von validen XML-Dateien fehlschlug. (Fehlermeldung: de.espirit.common.xml.XmlParsingError: unexpected EOF)

Externe Synchronisierung
CORE-15508

Ankündigung: Umstellung auf Jakarta EE 6.0

Weitere Informationen können dem Kapitel „Administration / Module: Ankündigung: Umstellung auf Jakarta EE 6.0“ entnommen werden.

FirstSpirit-Administrator, Modul-Entwicklung, Module, Server-Administrator
CXT-2935

Aktualisierung von integrierter Fremdsoftware

Weitere Informationen können dem Kapitel „System: Aktualisierung von integrierter Fremdsoftware“ entnommen werden.

ContentCreator
CXT-2936

Die Vorschau von Datensätzen konnte innerhalb der Datenquellen-Verwaltung nicht öffnet werden.

ContentCreator
CXT-2946

Einzelne Editoren in verschachtelten sprachabhängigen Formularen konnten in der Vorschau nicht in allen Fällen bearbeitet werden.

ContentCreator
DEVEX-618

Fehler vom Typ java.lang.Error werden jetzt ebenfalls in die konfigurierte Log-Datei geschrieben.

FSDevTools

Deprecations

Funktion Abgekündigt mit Entfällt / Entfallen mit
Eingabekomponente CMS_INPUT_CONTENTAREALIST 5.2R3
Eingabekomponente CMS_INPUT_CONTENTLIST 5.2R3
Eingabekomponente CMS_INPUT_FILE 5.2R3
Eingabekomponente CMS_INPUT_LINKLIST 5.2R3
Eingabekomponente CMS_INPUT_OBJECTCHOOSER 5.2R3
Eingabekomponente CMS_INPUT_PAGEREF 5.2R3
Eingabekomponente CMS_INPUT_PICTURE 5.2R3
Eingabekomponente CMS_INPUT_TABLIST 5.2R3
FirstSpirit Access-API: de.espirit.firstspirit.agency.GroupsAgent 5.2R15
FirstSpirit Access-API: delete (de.espirit.firstspirit.access.AccessUtil) 5.2R18
FirstSpirit Access-API: release (de.espirit.firstspirit.access.AccessUtil) 2018-06
FirstSpirit Access-API: getLastLoginAsDate (de.espirit.firstspirit.agency.UserStatisticsAgent) 2018-07
FirstSpirit Access-API: remainingDurationOfCurrentStageInMillis (de.espirit.firstspirit.server.MaintenanceModeInfo) 2018-07 2025-13
FirstSpirit Access-API: getStartingTimeOfStageAsDate (de.espirit.firstspirit.server.MaintenanceModeInfo) 2018-07 2025-13
FirstSpirit Access-API: getSelectedWebserverConfiguration (de.espirit.firstspirit.access.serverConfiguration) 2018-10 2025-13
FirstSpirit Access-API: setSelectedWebserverConfiguration (de.espirit.firstspirit.access.serverConfiguration) 2018-10 2025-13
FirstSpirit Access-API: getSelectedWebServer (de.espirit.firstspirit.access.project.Project) 2018-10 2025-13
FirstSpirit Access-API: setSelectedWebServer (de.espirit.firstspirit.access.project.Project) 2018-10 2025-13
FirstSpirit Access-API: getLostAndFoundStoreNodes(); (de.espirit.firstspirit.feature.FeatureInstallResult) 2018-10
FirstSpirit Access-API: getDeletedStoreNodes(); (de.espirit.firstspirit.feature.FeatureInstallResult) 2018-10
FirstSpirit Access-API: de.espirit.firstspirit.access.store.Previewable 2019-01
WebSphere Application Server Support für FirstSpirit 2019-05
Datenbank-Layer Oracle Database 11g/12c 2020-12 2025-05
FirstSpirit Access-API: redirectTemplateLogToDefaultLog() (Interface RenderingAgent.Renderer) 2021-05
Support für Log4j 1 2022-05 2024-06