Nicht autorisierte Menüelemente werden in der AEM-Navigation angezeigt, wenn SDI aktiviert ist.

In diesem Artikel wird erläutert, wie eine benutzerdefinierte Navigationskomponente in Adobe Experience Manager (AEM) nicht autorisierte Menüelemente anzeigen kann, wenn Sling Dynamic Include (SDI) aktiviert ist. Das Problem tritt auf, wenn sich die Komponente auf den aktuellen Seitenpfad stützt, um den Navigationskontext zur Laufzeit zu bestimmen. Um das Problem zu beheben, gestalten Sie die Navigationsimplementierung neu, sodass sie die vorlagenspezifische Konfiguration anstelle des Laufzeitanforderungskontexts verwendet.

Beschreibung description

Umgebung

Adobe Experience Manager (AEM)

Problem/Symptome

  • Eine benutzerdefinierte Navigationskomponente, die in nicht bearbeitbare Vorlagenstrukturen eingebettet und über eingeschränkte und öffentliche Site-Bereiche hinweg live kopiert wird, verliert den ursprünglichen Seitenkontext, wenn SDI aktiviert ist.
  • SDI ersetzt die Navigationskomponente durch einen Stub auf der zwischengespeicherten Seite und stellt eine separate Anfrage zum Rendern der Komponente.
  • Die SDI-Anfrage enthält weder die URL der Originalseite noch den Pfadkontext.
  • Die Navigationskomponente kann ihren konfigurierten Navigationsstammwert nicht basierend auf dem aktuellen Seitenpfad überschreiben.
  • Die Navigation für eingeschränkte Benutzer kann für öffentliche Benutzer sichtbar werden.
  • Durch die Deaktivierung von SDI wird das erwartete Navigationsverhalten wiederhergestellt, es besteht jedoch erneut das Risiko, dass durch zwischengespeicherte Navigation eingeschränkte Inhalte verfügbar werden.

Lösung resolution

Gehen Sie wie folgt vor, um das Problem zu beheben:

  1. Überprüfen Sie die Implementierung der benutzerdefinierten Navigationskomponente und identifizieren Sie jede Logik, die vom Laufzeitanfragekontext abhängt, z. B. den aktuellen Seitenpfad, um die Navigationsstamm-Eigenschaft zu bestimmen.
  2. Gestalten Sie die Vorlagenstruktur neu, sodass im eingeschränkten und im öffentlichen Navigationskontext separate Vorlagen verwendet werden. Konfigurieren Sie die Navigationsstamm-Eigenschaft direkt in jeder Vorlage, anstatt sie zur Laufzeit dynamisch abzuleiten.
  3. Aktualisieren Sie die Navigationskomponente, um den in der Vorlagenkonfiguration definierten Navigationsstammwert zu verwenden, und beenden Sie das Überschreiben des Werts basierend auf dem Anfragekontext.
  4. Testen Sie die Navigationskomponente sowohl in eingeschränkten als auch in öffentlichen Site-Bereichen und vergewissern Sie sich, dass für jeden Kontext nur die entsprechenden Menüelemente angezeigt werden.
  5. Aktivieren Sie SDI erneut und stellen Sie sicher, dass die Navigation korrekt dargestellt wird und nicht autorisierte Menüelemente nicht verfügbar gemacht werden.
  6. Wenn die Implementierung stark von benutzerdefinierter Navigationslogik abhängt, sollten Sie Ihren Implementierungspartner kontaktieren, um Unterstützung bei der Neugestaltung der Komponenten- oder Vorlagenstruktur zu erhalten.
recommendation-more-help
experience-cloud-kcs-help-kbarticles