Release Notes
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 MigrationAugust 2024:Die Unterstützung der automatischen Migration wird mit FirstSpirit 2024.9 eingestellt
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.
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- / Dateiname | Versionsnummer |
FirstSpirit CXT Plattformplatform-[version].fsm | 4.0.0 |
FirstSpirit CXT DAP Bridgedataservice-[version].fsm | 1.44.13 |
FirstSpirit CXT FragmentCreatorfragment-creator-[version].fsm | 4.0.8 |
FirstSpirit Fragment DAPfragmentdap-[version].fsm | 1.40.21 |
FirstSpirit Media DAPmediadap-[version].fsm | 1.31.12 |
FirstSpirit PageRef DAPpageref-[version].fsm | 1.9.12 |
FirstSpirit Markdown Editormarkdown-editor-[version].fsm | 1.29.11 |
FirstSpirit Tagging Editortagging-editor-[version].fsm | 1.29.11 |
FirstSpirit CXT FragmentCreator - CaaS Integrationcaas-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.xmlder 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_ANCESTORSFolgende 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äß desframeOptionsHeaderProperties aus derfs-server.conf.
Die Ersetzung mit Default-Einstellungen:; frame-ancestors 'self'
IstALLOW_ALLeingestellt, ist die Ersetzung ein Leerstring.$UPGRADE_INSECURE- upgrade-insecure-requests gemäß dem, was für denSecurityFilterim ParameterTransportSecurityeingestellt ist bzw. dessen Standardwert.
Der Standardwert istKEEP_SECURE.
Die Ersetzung mit Default-Einstellungen:- bei einem HTTPS-Request:
; upgrade-insecure-requests - bei einem HTTP-Request ist die Ersetzung ein Leerstring
- bei einem HTTPS-Request:
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_ANCESTORSEin leerer Wert deaktiviert den CSP-Header:
securityFilter.ContentSecurityPolicyHeader=Java System-Property
fs-wrapper.isolated.confsetenv.shDatei 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 |
FirstSpirit-Administrator |
| CORE-15252 | Das neue Event mit der Klasse |
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 |
Server-Administrator |
| CORE-15402 | Mit der aktuellen FirstSpirit-Version kann der CSP-Header konfiguriert werden. |
FirstSpirit Startseite, FirstSpirit-Administrator, Server-Administrator |
| CORE-15417 | Im „FirstSpirit Portal“ Modul („SAP Business Package for FirstSpirit“, |
Module |
| CORE-15450 | FirstSpirit Content Experience Tools: Aktuelle Modul-Versionen |
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: |
Externe Synchronisierung |
| CORE-15508 | Ankündigung: Umstellung auf Jakarta EE 6.0 |
FirstSpirit-Administrator, Modul-Entwicklung, Module, Server-Administrator |
| CXT-2935 | Aktualisierung von integrierter Fremdsoftware |
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 |
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 |