Mises à niveau possibles

Infrastructure de personnalisation

Architecture (fonctionnelle/infrastructure/contenu/application)

La fonctionnalité Infrastructure de personnalisation est conçue pour vous aider à réduire les violations dans les zones non extensibles du code (comme APIs) ou du contenu (comme des incrustations) qui ne sont pas compatibles avec la mise à niveau.

L’infrastructure de personnalisation comprend deux composants : Surface d’API et Classification du contenu.

Surface d’API

Dans les versions précédentes d’AEM, de nombreuses API étaient exposées par l’intermédiaire du jar Uber. Bien que certaines de ces API n’étaient pas destinées à être utilisées par les clients, elles étaient exposées afin de prendre en charge la fonctionnalité AEM entre les différents modules. Dorénavant, les API Java seront marquées comme étant publiques ou privées pour indiquer aux utilisateurs lesquelles peuvent être utilisées en toute sécurité dans le cadre des mises à niveau. Voici d’autres observations :

  • Les API Java accompagnées de la mention Public peuvent être utilisées et référencées par des modules d’implémentation personnalisés.

  • Les API publiques seront rétrocompatibles avec l’installation d’un module de compatibilité.

  • Le module de compatibilité contiendra un jar Uber de compatibilité pour garantir la compatibilité descendante.

  • Les API Java accompagnées de la mention Private sont destinées aux seuls modules internes AEM. Elles ne peuvent pas être utilisées par des modules personnalisés.

REMARQUE

Il ne faut pas confondre les concepts Private et Public employés dans ce contexte avec les notions de classes privées et publiques dans Java.

image2018-2-12_23-52-48

Classifications de contenu

AEM utilise depuis longtemps le principe des incrustations et Sling Resource Merger pour permettre aux utilisateurs d’étendre et de personnaliser les fonctionnalités d’AEM. Les fonctionnalités prédéfinies qui alimentent les consoles AEM et l’interface utilisateur sont stockées sous /libs. Les utilisateurs ne doivent jamais rien modifier sous /libs, mais ils peuvent ajouter du contenu sous /apps afin d’étendre la fonctionnalité définie sous /libs (pour en savoir plus, voir Développement avec des incrustations). Cela occasionnait toutefois de nombreux problèmes lors de la mise à niveau d’AEM, dans la mesure où le contenu de /libs pouvait changer, provoquant ainsi des interruptions inattendues de la fonctionnalité d’incrustation. Les utilisateurs peuvent également étendre les composants AEM par le biais de l’héritage via sling:resourceSuperType ou simplement faire référence à un composant dans /libs directement par sling:resourceType. Des problèmes de mise à niveau similaires peuvent se produire avec les scénarios d’utilisation Référence et Remplacement.

Pour permettre aux utilisateurs de mieux comprendre les zones de /libs qui peuvent être utilisées et superposées en toute sécurité, le contenu de /libs a été classé avec les mixins suivants :

  • Public (granite:PublicArea) : définit un nœud comme étant public afin qu’il puisse être recouvert, hérité (sling:resourceSuperType) ou utilisé directement (sling:resourceType). Les nœuds situés sous /libs marqués comme étant publics peuvent être mis à niveau en toute sécurité avec l’ajout d’un module de compatibilité. En règle générale, les utilisateurs doivent uniquement exploiter les nœuds publics.

  • Résumé (granite:AbstractArea) : définit un nœud en tant que résumé. Les nœuds peuvent être recouverts ou hérités (sling:resourceSupertype), mais ils ne doivent pas être utilisés directement (sling:resourceType).

  • Final (granite:FinalArea) : définit un nœud comme étant final. Les nœuds classés en tant que finaux ne doivent idéalement pas être recouverts ni hérités. Les nœuds finaux peuvent être utilisés directement via sling:resourceType. Par défaut, les nœuds secondaires placés sous le nœud final sont considérés comme internes.

  • Interne (granite:InternalArea) *- * Définit un nœud comme interne. Les nœuds classés dans la catégorie Interne ne peuvent pas être superposés, hérités, ni utilisés directement. Ces nœuds sont destinés uniquement aux fonctionnalités internes d’AEM.

  • Aucune annotation : les nœuds héritent de la classification en fonction de la hiérarchie d’arborescence. Par défaut, /root est Public. Les nœuds dont un parent est classé dans la catégorie Interne ou Final doivent également être traités comme étant internes.

REMARQUE

Ces stratégies ne sont appliquées que par rapport à des mécanismes basés sur un chemin de recherche Sling. D’autres zones de /libs, comme une bibliothèque côté client, peuvent se voir affecter la classification Internal. Cependant, elles peuvent toujours être utilisées avec l’inclusion clientlib standard. Dans ce cas, il est essentiel que le client continue de respecter la classification Interne.

Indicateurs de type de contenu CRXDE Lite

Les mixins appliqués dans CRXDE Lite affichent en grisé les nœuds de contenu et les arborescences ayant la classification INTERNAL. Pour la classification FINAL, seule l’icône est grisée. Les enfants de ces nœuds apparaissent également en grisé. Dans les deux cas, la fonctionnalité Nœud de recouvrement est désactivée.

Public

image2018-2-8_23-34-5

Final

image2018-2-8_23-34-56

Interne

image2018-2-8_23-38-23

Contrôle de l’intégrité du contenu

REMARQUE

Depuis la version 6.5 d’AEM, Adobe recommande d’utiliser l’Outil de détection des motifs pour détecter les violations d’accès au contenu. Les rapports de l’Outil de détection des motifs sont plus détaillés, détectent plus de problèmes et réduisent la probabilité de faux positifs.

Pour plus d’informations, consultez la section Évaluation de la complexité de la mise à niveau à l’aide de l’Outil de détection des motifs.

AEM 6.5 sera distribué avec un contrôle d’intégrité pour informer les clients si du contenu référencé ou recouvert est utilisé d’une manière non conforme à la classification du contenu.

La Vérification de l’accès au contenu Sling/Granite est un nouveau contrôle d’intégrité qui surveille le référentiel afin de détecter si du code client accède, de manière non autorisée, à des nœuds protégés dans AEM.

Ce contrôle analyse /apps et son exécution demande généralement quelques secondes.

Pour pouvoir accéder à ce nouveau contrôle d’intégrité, vous devez procéder comme suit :

  1. Depuis l’écran d’accueil d’AEM, accédez à Outils > Opérations > Rapports d’intégrité.

  2. Cliquez sur Vérification de l’accès au contenu Sling/Granite comme illustré ci-dessous :

    screen_shot_2017-12-14at55648pm

Une fois l’analyse terminée, une liste d’avertissements s’affiche pour informer l’utilisateur final du nœud protégé qui est référencé de manière incorrecte :

screenshot-2018-2-5healthreports

Une fois que les problèmes ont été corrigés, le statut vert est rétabli :

screenshot-2018-2-5healthreports-violations

Le contrôle d’intégrité affiche des informations collectées par un service en arrière-plan qui vérifie, de manière asynchrone, si un type de ressource ou d’incrustation est utilisé dans tous les chemins de recherche Sling. Si des mixins de contenu sont utilisés de manière incorrecte, une infraction est signalée.

Sur cette page