Vous consultez actuellement l'aide de la version:

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 Privé 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 Privé 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 via 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 superposé, 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 superposés 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 dans la catégorie Final ne peuvent pas être remplacés, 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 Interne. 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 les nœuds de contenu et les arborescences ayant la classification INTERNE en grisé. 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

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

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, l’état 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.

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne