Éléments de menu non autorisés affichés dans la navigation AEM lorsque le SDI est activé

Cet article explique comment un composant de navigation personnalisé dans Adobe Experience Manager (AEM) peut afficher des éléments de menu non autorisés lorsque Sling Dynamic Include (SDI) est activé. Le problème se produit lorsque le composant s’appuie sur le chemin d’accès actuel de la page pour déterminer le contexte de navigation au moment de l’exécution. Pour résoudre ce problème, reconcevez l’implémentation de la navigation afin d’utiliser une configuration spécifique au modèle au lieu du contexte de la requête d’exécution.

Description description

Environnement

Adobe Experience Manager (AEM)

Problème/Symptômes

  • Un composant de navigation personnalisé incorporé dans des structures de modèle non modifiables et copié en direct dans des sections de site publiques et restreintes perd le contexte de page d’origine lorsque le SDI est activé.
  • SDI remplace le composant de navigation par un stub dans la page mise en cache et émet une requête distincte pour effectuer le rendu du composant.
  • La requête SDI n’inclut pas l’URL de page ou le contexte du chemin d’accès d’origine.
  • Le composant de navigation ne peut pas remplacer sa valeur Racine de navigation configurée en fonction du chemin d’accès actuel à la page.
  • La navigation destinée aux utilisateurs restreints peut devenir visible pour les utilisateurs publics.
  • La désactivation de SDI restaure le comportement de navigation attendu, mais réintroduit le risque que la navigation mise en cache expose le contenu restreint.

Résolution resolution

Suivez les étapes ci-dessous pour résoudre le problème :

  1. Examinez l’implémentation du composant de navigation personnalisé et identifiez toute logique qui dépend du contexte de requête d’exécution, tel que le chemin de page actuel, pour déterminer la propriété Racine de navigation.
  2. Reconcevez la structure du modèle de sorte que les contextes de navigation restreints et publics utilisent des modèles distincts. Configurez la propriété Racine de navigation directement dans chaque modèle au lieu de la dériver dynamiquement au moment de l’exécution.
  3. Mettez à jour le composant de navigation pour utiliser la valeur Racine de navigation définie dans la configuration du modèle et arrêter de remplacer la valeur en fonction du contexte de la requête.
  4. Testez le composant de navigation dans les sections de site publiques et restreintes et vérifiez que seuls les éléments de menu appropriés s’affichent pour chaque contexte.
  5. Réactivez SDI et vérifiez que le rendu de la navigation est correct et que les éléments de menu non autorisés ne sont pas exposés.
  6. Si l’implémentation dépend fortement de la logique de navigation personnalisée, pensez à demander l’aide de votre partenaire d’implémentation pour reconcevoir la structure du composant ou du modèle.
recommendation-more-help
experience-cloud-kcs-help-kbarticles