Jahia 8.2.3 Release Notes

March 11, 2026

What's new?

Jahia 8.2.3 is a maintenance release, continuing the work that was started by the Jahia team in 8.2.0. 

Our in-context editing UI, Page Builder now offers feature parity with legacy Page Composer, and is considered ready to be used in production on a daily basis. Since jContent 3.4, we did some light but important improvements in our media management UI: 

  • Display assets usages in views and pickers
  • Change single-click select behavior to not start a multiselect in thumbnails view if Ctrl, Meta or Shift is not pressed
  • Display mimetype in content editor header and cards (thumbnail views and pickers)
  • Show thumbnails in list view when available
  • Page Composer remains available to ensure a smooth transition for organizations

JavaScript modules engine v1.2 is shipped with 8.2.3. It's fully ready for production and several projects are successfully using this technology. It is also fully compatible with OpenJDK. The Jahia team remains dedicated to making this new capability successful. 

Other important changes include:

  • Full rework of http headers for cache control, to optimize caching by browsers and CDNs, from assets to full pages
  • A new Authentication service available in OSGi
  • CSRF Guard is now disabled by default for unauthenticated users (guest)
  • UI improvements in the tools
  • Support for newer versions of databases

Updates to Jahia release artifacts

Jahia 8.2.4.0 is introducing a few changes to its release artifacts:

About Rolling Upgrade
Jahia 8.2.3.0 is a not compatible with the rolling update procedure as it includes changes to modules and other core bundles making it impossible to run different versions of Jahia nodes in the same Jahia cluster. Please follow the In-Place or Blue-Green upgrade procedure detailed in this dedicated Academy section.

Breaking changes

Changes listed in this section might be considered breaking depending of your usage, we recommend always reviewing this section of the release notes.

Deprecated TokenAuthValve, ContainerAuthValve and added a property to disable/enable TokenAuthValve

TokenAuthValve is now disabled by default.

This change deprecates the TokenAuthValveImpl and ContainerAuthValveImpl authentication valves. Token-based authentication is now disabled by default for improved security, and a new configuration property auth.token.enabled (default: false) has been introduced to control the TokenAuthValve. If you are unable to migrate your code to use the recommended Personal API Token (PAT) module before upgrading, you can temporarily restore the previous behavior by setting auth.token.enabled=true in your configuration. Note that container-based authentication is also deprecated and not recommended, as Jahia now handles authentication internally.

Commit: df46291

Implement clear restrictions for bundles that are not identified as Jahia modules in module management.

This change enforces that the Module Management Service and provisioning API now operate strictly on Jahia modules only. Previously, install, start, stop, and uninstall operations could be performed on any OSGi bundle; now, these are limited to bundles identified as valid Jahia modules. Install operations for non-modules are ignored with a warning log, while start, stop, and uninstall operations return a 500 error with a clear message. The following provisioning commands are now deprecated: installBundle, installAndStartBundle, installOrUpgradeBundle, startBundle, stopBundle, uninstallBundle. Use the new commands: installModule, installAndStartModule, installOrUpgradeModule, startModule, stopModule, uninstallModule. The old commands are subject to the same restrictions and will be removed in a future release.

Commits: 5431eec70bbda5164a9c3, πŸ”’ 7ba332d, πŸ”’ 386d60fa3ad7c4

Replaced GraalVM with OpenJDK in Jahia Docker images

GraalVM has been removed from the Jahia Docker images and replaced with OpenJDK. This change aims to enhance compatibility across various environments. You are extremely unlikely to be impacted by this change, only customers using Docker images, AND a site built with javascript-modules-engine AND GraalVM-specific features will need to review their code.

Commits: e18eb7e350c5c1d875b3d8d3089beab36a0

Updated Apache Tika from 2.9.3 to 3.2.3

Depending of your usage, it might be necessary to extend the range of Tika versions in the pom.xml of your modules. You can see an example of such a change here. If you are not impacted by the breaking changes listed below, updating from org.apache.tika;version="[1.27,3)" to org.apache.tika;version="[1.27,4)" will make your module compatible with both Tika 2 and Tika 3 (up to Tika 4, excluded).
Although most users are not expected to be impacted, but please review the following upstream changes:

  • Convenience methods for XML readers were moved from ParseContext to XMLReaderUtils (TIKA-4259).
  • The boilerpipe handler has been moved to the tika-handler-boiler-pipe package (TIKA-4138).
  • HTML parsing now uses JSoup instead of TagSoup. If you have a custom configuration on the HTMLParser, you'll need to update it to use o.a.t.p.html.JSoupParser (TIKA-1599).

Commits: 980d5086658ed5aabd777acfe4c1f548ca1a4395f4c546617, πŸ”’ 4e7b529

Updated javascript-modules-engine from 0.3.0 to 1.2.0

Strong breaking changes are present between Javascript Modules Engine 0.3.0 and 1.2.0. Please refer to the module changelog on Jahia Store for more details. If you are using Javascript Modules in your project, be sure to first update javascript-modules-engine in your running instance of Jahia before attempting to upgrade Jahia to this version. Customers not using javascript-modules-engine or already running javascript-modules-engine 1.0.0 or later are not impacted by this breaking change.

Commits: aac8c7ada762d34da91df339f691e38621723ed8c9a347ab2

Updated modules in 8.2.3

The advanced-visibility module was removed from the build following its merge with the visibility module.

Module In Jahia 8.2.2.x In Jahia 8.2.3.0 Release Notes
assets 8.2.0 8.3.0 Release Notes
ckeditor 4.21.0-jahia8-7 4.21.0-jahia8-8 Release Notes
client-cache-control 8.2.1.0 9.0.1 Release Notes
clustering 8.3.0 8.4.0 -

πŸ—’οΈ clustering 8.4.0:

Improvements

  • Implemented clear restrictions for bundles that are not identified as Jahia modules in module management (see related change in Jahia core)
  • Implemented a new karaf command: jahia:clustered-bundle-states to return bundle states on the cluster

Bug fixes

  • Fixed an issue causing infinite loop in configuration synchronization
content-security-policy 2.4.0 2.5.0 Release Notes
external-provider 4.8.0 4.9.0 Release Notes
graphql-dxm-provider 3.4.0 3.5.1 Release Notes
jahia-administration 1.11.0 1.12.0 Release Notes
jahia-csrf-guard 4.1.0 4.2.0 Release Notes
jahia-dashboard 1.11.0 1.12.0 Release Notes
jahia-page-composer 2.0.0 2.1.0 Release Notes
jahia-repository-explorer 1.5.0 1.6.0 Release Notes
jahia-ui-root 1.10.0 1.11.0 Release Notes
jcontent 3.2.0 3.5.0 Release Notes
jcrestapi 3.2.0 3.3.0 Release Notes
luxe-jahia-demo 0.4.1 1.0.1 Release Notes
macros 8.2.0 8.3.0 Release Notes
module-manager 2.11.0 2.13.0 Release Notes
personal-api-tokens 1.5.0 1.7.0 Release Notes
rolesmanager 8.6.0 8.7.0 Release Notes
server-availability-manager 3.3.0 3.4.1 Release Notes
site-settings-publication 2.0.0 2.2.1 Release Notes
site-settings-seo 5.4.0 5.5.0 Release Notes
siteSettings 8.9.0 8.11.0 Release Notes
tasks 8.2.0 8.3.0 Release Notes
templates-system 9.1.0 10.0.0 Release Notes
tools 5.1.2 5.2.1 Release Notes
tools-ee 3.3.0 3.4.0-SNAPSHOT -

πŸ—’οΈ tools-ee 3.4.0:

Improvements

  • Added a common header and footer to the tools with back and logout buttons
  • Migrated from commons.lang to commons.lang3
userDashboard 8.6.0 8.7.0 Release Notes
visibility 8.0.0 9.0.0 Release Notes

Updated database drivers in 8.2.3

Driver In Jahia 8.2.2.x In Jahia 8.2.3.0 Release Notes
MariaDB driver 3.5.1 3.5.6 Release Notes
MSSQL driver 12.8.1.jre11 12.10.2.jre11 Release Notes
MySQL driver 8.3.0 8.4.0 Release Notes
Oracle driver ojdbc8-23.7.0.25.01 ojdbc11-23.26.0.0.0 Release Notes
PostgreSQL driver 42.7.5 42.7.8 Release Notes

 

Updated libraries in 8.2.3

From In Jahia 8.2.2.x In Jahia 8.2.3.0 Release Notes
Apache Commons BeanUtils 1.9.4 1.11.0 Release Notes
Apache Commons codec 1.15 1.18.0 Release Notes
Apache Commons compress 1.25.0 1.27.1 Release Notes
Apache Commons FileUpload 1.3.3 1.6.0 Release Notes
Apache Commons IO 2.14.0 2.17.0 Release Notes
Apache Commons lang3 3.14.0 3.18.0 Release Notes
Apache Commons vfs2 2.4.1 2.10.0 Release Notes

As part of this update, the commons-vfs2-sandbox module has been removed since it is no longer maintained.

Apache HttpComponents httpclient5 5.1.3 5.5 Release Notes
Jackrabbit 2.20.12-jahia2 2.22.0-jahia1 Release Notes
Apache Tomcat 9.0.99 9.0.113 Release Notes
aws-java-sdk-s3 1.12.272 1.12.787 Release Notes
bouncycastle 1.75.0 1.83 Release Notes
Eclipse Glassfish Jersey 2.18 2.47 Release Notes
hibernate-validator 6.2.0.Final 6.2.5.Final Release Notes
jackson 2.15.2 2.19.0 Release Notes
jahia-configuration (jahia-plugin) 6.1 6.13 Release Notes
Java EE HK2 2.4.0-b25 2.6.1 Release Notes
joda-time 2.10.13 2.14.0 Release Notes
jodconverter 4.4.2 4.4.11 Release Notes
log4j2 2.17.2 2.23.1 Release Notes
pax.web.jsp 7.3.29-jahia2 7.3.29-jahia3 Release Notes
snakeyaml 2.2 2.4 Release Notes

Other notable libraries changes

  • ✨ Removed embeded graalvm libraries which are now provided by javascript-modules-engine (Commit: 0e47150)
    Were removed from the core: org.graalvm.sdk, org.graalvm.truffle, org.graalvm.js, org.graalvm.regex

Jahia 8.2.3 - Changelog

Jahia 8.2.3.0

Deprecations

Features deprecated in this release are expected to be removed alongsider the release of Jahia 8.3

  • πŸ“¦ Added deprecation mark/log on old XSS filtering mechanisms and promoted the new html-filtering module as alternative. (Commit: fb7f8e2)
  • ♻️ Deprecated the HtmlExternalizationService (Commit: 40befdc)

    The legacy HtmlExternalizationService is now deprecated. It is only used in the legacy newsletter app and is not exposed as an OSGI service (usable only from Spring). A new implementation for externalized HTML generation will be required in the future.

  • ♻️ Deprecated the sha1DigestLegacy method in EncryptionUtils (Commit: 811e0ab)

    The legacy sha1DigestLegacy method in EncryptionUtils is now marked as @deprecated (since 7.1.0.1) and its documentation updated to clarify it is retained only for backward compatibility. Newer versions use PBKDF2 for password hashing. This change improves security and clarifies future direction.

  • ♻️ Deprecated the SsoValve (Commit: 2e22307)

    The SsoValve has been deprecated in favor of the jahia-authentication module, which provides SSO capabilities and a more modular SSOValve inner implementation. You can find more details about authentication in a dedicated documentation section on the Jahia Academy

Core

  • ✨ Added git OSGI manifest headers to bundles (Commit: ab21bdb)

    With this change, you can now identify, via the Jahia Tools, the Git commit hash and branch from which a bundle was built. This enhancement aids in debugging and tracking the source of deployed bundles.

  • ✨ Created a new ChoiceListInitializer to list the properties of given node types with custom filtering. (Commits: baa54281eb00f5, πŸ”’ 9372783, πŸ”’ f17097b)
  • ✨ Introduced debug logs in scheduler to facilitate troubleshooting (Commit: 2259161)
  • πŸ› Allow percent-encoded curly braces in URLInterceptor (e.g. %7bmode%7d instead of {mode}) (Commits: f0d637bb0fa2848ce7a29)
  • πŸ› Corrected a log message that should only be displayed when running JDK11 (Commit: ce9822e)
  • πŸ› Corrected French language (and typos) in various parts of the application (Commits: 1b6b1b4ba43fc4)
  • πŸ› Correctly compute the context path when setting cookies from GraphQL (Commit: ef4ea24)
  • πŸ› Excluded ck5 CSS class ck-form in global reset, to avoid conflicts with Jahia admin styles. (Commit: 11bc6d4)
  • πŸ› Fallback to root node if user lacks jcr:read_default on site in GWT controller (Commits: 12f25fe3985770)
  • πŸ› Fixed a NPE when richtext property does not exists in GWT translate engine, causing issues when translating content. (Commit: bd7d765)
  • πŸ› Fixed a NPE when using Karaf command jahia:servlets (Commit: b8aa18c)
  • πŸ› Fixed a situation in which specific payloads could lead to increased log filing (Commits: 891aa97f1d57ab198a9e32e63f977be7ebd)
  • πŸ› Fixed an error when restoring a node with jnt:referenceInField child nodes (Commit: 138c11f)

    This fix impacted restoring a nodes that has both orderable child nodes and the mixin jmix:referencesInField with child nodes of types jnt:referenceInField

  • πŸ› Fixed an issue causing a mismatch in the number of documents returned by a JCR-SQL2 query executed on different cluster nodes (Commit: a293355)
  • πŸ› Fixed an issue causing nodetype icons to not be rendered when redeploying a module with new icons, requiring a server restart. (Commits: b64c424d822b94b4ac59f)
  • πŸ› Fixed an issue preventing the use of a proxy with JDK 17 (Commit: f3c90d2)
  • πŸ› Fixed an issue preventing visibility rule to work in customized preview (Commits: d7ac31708f0cfd)
  • πŸ› Fixed an issue when moving a node between providers breaks references to this node (Commits: 5890ba061bf6a3)
  • πŸ› Fixed an issue with SiteKey resolution when a vanity is matching, previously causing issue with the resolution of custome error pages. (Commit: 89624eb)
  • πŸ› Fixed an issue with template priority across multiple template resolvers, causing issues when templates exists in both .jsp and .tsx resolvers (Commit: cc14a23)
  • πŸ› Fixed source files with incorrect file encoding (Commits: 3e290335aab996)
  • πŸ› Use textarea instead of an input field for nt:query edition ui to improve user experience when editing JCR-SQL2 queries (Commit: f717230)
  • πŸ› When using the fixApplier prevent the installation of javascript-modules-engine if running JDK11 (Commit: 18f5db0)
  • πŸ“š Added comments in 02-jahia-nodetypes.cnd to explain the usage of Jmix:isAreaList (Commit: 41b5e04)
  • πŸ“š Added comments/java doc to LastModifiedListener (Commit: 5b237c6)
  • πŸ“š Updated labels in the version comparison component for improved clarity (Commit: 781c3fa)
  • πŸ“¦ Cleanup and refactoring of Jahia Templating system (Commits: 5ef09179505ac9c51f05316eb3c126f56030f43f1f)
  • πŸ“¦ Converted migration scripts from graphql to groovy (Commits: 496144cd3cefa1)

    Migration scripts written in GraphQL could be a source of flakiness depending on the startup time of the graphql-dxm-provider module. These scripts have been converted to Groovy and it is recommended to not continue creating migration scripts in GraphQL but to prefer Groovy instead.

  • πŸ“¦ Improved efficiency of LoginConfig when searching for a custom URL (Commit: 6f1e237)
  • πŸ“¦ Refactored the OSGI system packages to ensure, at build time, that OSGi system packages configuration stays in sync with project dependencies, preventing configuration drift. (Commit: 93f4e1f)
  • πŸ“¦ Removed GWT dependency from the core (Commits: 3a5aa8a12d5fe323c3bea7249860)
  • πŸ›  Compile, package and deploy with JDK 17 instead of JDK 11 (Commit: 66c8487)

    This allows developers to use JDK17 when building Jahia while still being compatible with JDK11 at runtime.

  • ♻️ Added logging details when DB is not initialized at Jahia startup (Commit: 15716e9)
  • ♻️ Correct role node naming for system administrator in JCR after editing permissions (Commits: 3503c89ae8f662)
  • ♻️ Removed a Java file that was entirely commented out (Commit: f523909)
  • ♻️ Removed categorySelector tag <ui:categorySelector> (Commit: caa4881)

    The tag was already not usable as it associated page did not exist anymore, this removal will not break any existing functionality.

  • ♻️ Removed outdated Maven site and GWT plugin configurations and docs (Commit: e7cbfdd)
  • ♻️ Replaced deprecated ${parent.version} Maven variable with ${project.parent.version} (Commit: 4679297)

Security

  • ✨ Implemented hashing for session ids in logs (Commit: 908968a)
  • ✨ Introduced secure handling for files in multipart requests targeting Jahia rendering/actions (Commits: f78e60b, πŸ”’ 4c5f5b0)
  • ✨ Introduced the ability to configure EncryptionUtils encryptor with jahia.properties (Commit: 78bf5b7)
  • πŸ› Escape JCR properties HTML content in Repository Explorer (Commit: 37c6bfa)
  • πŸ› Escape titles in workflow dashboards (Commit: ad856c4)
  • πŸ› Strengthen the password change request, change also present in Jahia 8.2.2.1 (Commits: 8e11fecd782fc117a02591bc0622e471fd5)
  • πŸ›  Updated the build process to support multiple suppression files (suppressionFiles parameter - plural) (Commits: fafb8bd72e1539, πŸ”’ d05fb33)
  • ♻️ Extended customer OWASP dependency-check suppressions (Commits: 28de4f4, πŸ”’ 78bdfe635ac49dcb884ed6879b97)

Authentication

  • ✨ Implemented a mechanism to invalidate active HTTP sessions for a given user (Commits: a57fac9, πŸ”’ 7ba24693b56830, πŸ”’ c3c3994457cf0e5636518)
  • ✨ Implemented a new OSGI authenticationService, updated core valves (Commits: d6610fcea5796937565acc222c3c09f0d7463e9e770a2ab1de039ca36ad713bf56efa6a8198da)
  • ✨ Provide initial url when redirected to a custom login page (Commits: 16ce8fd, πŸ”’ 57ce072)

    This change makes it possible to redirect the user to the original URL after a successful login when they were initially redirected to a custom login page due to insufficient permissions.

  • πŸ› Filter out LoginUrlProvider that support a custom login URL to only keep non null URLs (Commit: c968d3e)
  • πŸ› Fixed incorrect character encoding when rendering the login page preventing login with special characters (Commits: abb277b, πŸ”’ 58ebc34)
  • πŸ› Prevent the usage of a JCRUserNode on which the linked JCR session may have been closed when the HTTP session got invalidated. (Commit: ab56178)

Search

  • ✨ Introduced a new dual analyzer for full text search (Commits: 8ad2576, πŸ”’ ed5e9654f5f7b5)

    This change enables the use of both a standard analyzer and an optional i18n analyzer for full-text search queries. By default, the behavior remains unchanged, using only the standard analyzer. If compatibility with both non-i18n and i18n properties is required, a secondary i18nAnalyzer can be provided. The resulting query will be dual-analyzed, combining results from both analyzers to improve search accuracy across multilingual content.

  • ✨ Restrict value attribute of nodeType tag file (Commits: f3adf039adc951)

    If a custom node type is provided (using the <s:nodeType value=.../> tag), the system ensures the value is a registered node type. This implicitly validates that a single-value is used (jnt:page,jnt:bigText is a not a valid node type, even if both jnt:page and jnt:bigText are registered node types).

  • πŸ› Fixed a stack overflow issue when search results where too large (Commit: a82e85a)

Workflow

  • πŸ› Adjust visibility workflow panel (CSS) (Commit: 0ee85b4)
  • πŸ› Enhances workflow permissions by ensuring that sub‐roles inherit permissions from their parent roles. (Commit: ee254b7)

Cache

  • ✨ Updated URL Rewrite rules to generate better "cache-control" header (Commit: 958c474)

    The URL Rewrite rules for cache control header have been removed. Instead, a new Jahia feature called client-cache-control
    has been introduced to manage the cache control header more effectively, in particular to make it possible to better tweak cache usages in CDNs.
    Documentation is available on Jahia Academy

  • πŸ› Fixed an an issue with the skip.aggregation property not being properly handled (Commits: a6bf7efd9456fe, πŸ”’ d8b49ea)
  • πŸ› Fixed an issue with cache key part not correctly handled, causing performance issues when using javascript modules and page personalization (Commits: 1dcbfbf39018f815755aa)
  • πŸ› Fixed ETag headers that were not RFC-compliant, they are now surrounded by double quotes. (Commit: 44223e6)
  • πŸ› Introduction of an optimization for AclCacheKeyPartGenerator targetting site users under /sites/*/users, improving performances for environments with a very large number of site users. (Commits: f334a00119bee2)
  • πŸ› Reduced log verbosity for client cache policy (Commit: 8a08c3a)
  • πŸ› Use preset Cache-Control header in StaticFileServlet even if resetting the response (Commit: 464af9b)

    In StaticCacheFilter, response is reset and preset headers were incorrectly removed causing client-cache-control to miss it's preset value.

Docker

  • ✨ Introduced support for specifying a custom Catalina context in Docker (Variable: CATALINA_CONTEXT) (Commits: f9f251c, πŸ”’ 84527af, πŸ”’ 47b137f)
  • ✨ Simplify jahia configuration at startup to use configurators instead of maven goal (Commit: d4037b1)
  • πŸ› Add a new path: /var/jahia/config-overrides to tomcat common loader making it possible to persist custom configurations upon redeployments (Commit: e142868)
  • πŸ› Fixed an issue causing trailing spaces to be added to jahia.node.properties during parsing of docker configuration JAHIA_CONFIGURE_OPTS (Commit: 06becce)
  • πŸ› Improved usage of dependencies in jahia-configuration (Commits: d3674f2e4791e3275539c)
  • πŸ“š Added comments in Docker pom.xml to explain usage of Maven profiles for local Docker builds (Commit: 97aa481)
  • πŸ“š Added instruction about development docker images and their location on GitHub Packages registry (internal) (Commit: πŸ”’ 67b92b0)
  • πŸ“š Created README aimed at being displayed on Docker Hub for Jahia Discovery docker image (Commit: πŸ”’ ead5cf6)
  • πŸ“¦ Cleanup Jahia base DockerFile and reduce the size of the image by removing unecessary folders/files (Commit: 7f04693)
  • πŸ›  Fixed an issue when building AMD64 images from ARM machines (Commit: 653124b)
  • βš™οΈ Migrated from Docker Hub to GitHub Container Registry for Development images (Commits: f09268f, πŸ”’ 6e2a2a6, πŸ”’ c90f340, πŸ”’ 1bf8942dcdc506, πŸ”’ 35ca070de3dd3621d00cd7dc6888caa8582, πŸ”’ 82eac4e)
  • βš™οΈ Refactored the build process of Jahia Discovery image to address multi-arch builds and race conditions with luxe (Commits: πŸ”’ b517930)
  • ♻️ Move JVM module access flags from CATALINA_OPTS to JDK_JAVA_OPTIONS for proper startup configuration (Commits: e9355d76099c59, πŸ”’ dfc9d2b)
  • ♻️ Updated yourkit binary from 2023.9 to 2025.3 (only retrieved when YOURKIT_ACTIVATED variable is used) (Commit: cd2ea55)

Installer

  • πŸ“¦ Removal of the "exe" installer following compatibility issues with JDK 17. The "jar" installer can fully be used on Windows (and other supported platforms) using java -jar Jahia-EnterpriseDistribution-8.x.x.x.jar.

Legend (icons): βœ¨ Improvements & new features, πŸ› Bugs, πŸ“š Documentation, πŸ“¦ Packaging, πŸ›  Change to Jahia build, βš™οΈ Changes to CI, β™»οΈ chores

How to upgrade

Jahia upgrade procedures are detailed in this Academy page.

If you are using Jahia installed, you can also download the fixAppliers here: