AEM portaler och portlets aem-portals-and-portlets
I det här dokumentet beskrivs följande:
- AEM Portal-arkitektur
- Administrera och konfigurera AEM som en portal
- Använda AEM som portal
- Installera, konfigurera och visa AEM innehåll i en portlet (till exempel en webbserver)
AEM Portal Architecture aem-portal-architecture
AEM portalarkitektur innehåller definitioner av portaler och portlets.
Vad är en portal? what-is-a-portal
En portal är ett webbprogram som innehåller personalisering, samlad inloggning, innehållsintegrering från olika källor och som är värd för informationssystemens presentationsskikt.
Du kan köra JSR 286-kompatibla portlets i AEM. Med portletkomponenten kan du bädda in en portlet på sidan. Se Administrera AEM Content Portlet.
Vad är en portlet? what-is-a-portlet
Portlets är webbkomponenter som distribueras inuti en behållare som genererar dynamiskt innehåll. Portletgränssnittet paketeras och distribueras som en .war-fil inuti en portletbehållare. Om du kör AEM som en portal måste du ha portletens .war-fil för att kunna köra portleten.
Information om hur du konfigurerar AEM innehåll att visas i en portal finns i Installera, konfigurera och använda AEM i en portlet.
AEM Portal Director aem-portal-director
Administrera AEM Content Portlet administering-the-aem-content-portlet
Med den AEM innehållsportleten kan du visa AEM innehåll i en portal. Portleten är tillgänglig på /crx-quickstart/opt/portal
och kan anpassas på olika sätt. Du kan till exempel anpassa hanteringen av enkel inloggning/autentisering genom att distribuera din egen autentiseringstjänst och generera den autentiseringsinformation som krävs för AEM skriva över standardbeteendet. Plugin-programmen använder ett definierat API som gör att du kan lägga till egna funktioner genom att skapa plugin-programmet mot API:t. Plugin-programmet kan distribueras till den portlet som körs. För att funktionen ska fungera på rätt sätt måste AEM författare och publiceringsinstans ha en konfiguration tillsammans med innehållssökvägen som ska visas vid start.
Vissa konfigurationer kan ändras via portletinställningar och andra genom OSGi-tjänstkonfigurationer. Du ändrar dessa konfigurationer med config filer eller OSGi-webbkonsolen.
Portletinställningar portlet-preferences
Portalinställningarna kan konfigureras vid distributionen på portalservern eller genom att redigera WEB-INF/portlet.xml innan portletwebbprogrammet distribueras. Filen portlet.xml ser ut så här som standard:
<?xml version="1.0" encoding="UTF-8"?>
<portlet-app xmlns="https://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd /opt/SUNWps/dtd/portlet.xsd"
version="1.0">
<portlet>
<portlet-name>RSSWeatherPortlet</portlet-name>
<portlet-class>org.jboss.portlet.weather.WeatherPortlet</portlet-class>
<init-param>
<name>default_zipcode</name>
<value>05673</value>
</init-param>
<init-param>
<name>RSS_XSL</name>
<value>/WEB-INF/Rss.xsl</value>
</init-param>
<init-param>
<name>base_url</name>
<value>https://xml.weather.yahoo.com/forecastrss?p=</value>
</init-param>
<expiration-cache>180</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
<portlet-mode>EDIT</portlet-mode>
</supports>
<portlet-info>
<title>Weather Portlet</title>
</portlet-info>
<portlet-preferences>
<preference>
<name>expires</name>
<value>180</value>
</preference>
<preference>
<name>RssXml</name>
<value>https://xml.weather.yahoo.com/forecastrss?p=33145</value>
<read-only>false</read-only>
</preference>
</portlet-preferences>
</portlet>
</portlet-app>
Portleten kan konfigureras med följande inställningar:
OSGi Web Console osgi-web-console
Anta att portalservern körs på värddatorns lokala värd, port 8080 och att AEM portletens webbprogram är monterat i webbprogramskontexten cqportlet, webbadressen till webbkonsolen är http://localhost:8080/cqportlet/cqbridge/system/console
. Standardanvändare och lösenord är admin.
Öppna Konfigurationer och markera Konfiguration av CQ-server för portalkatalog. Här anger du bas-URL:en till författaren och publiceringsinstansen. Denna procedur beskrivs i Konfigurera portleten.
Erbjuda konfigurationer providing-configurations
För att stödja automatiserad driftsättning och konfigureringsetablering har AEM innehållsportlet inbyggt konfigurationsstöd som försöker läsa konfigurationer från klassökvägen som tillhandahålls till portletprogrammet.
Vid start är egenskapen system com.day.cq.portet.config läses för att identifiera den aktuella miljön. Vanligtvis är värdet för den här egenskapen något liknande dev, prod, test och så vidare. Om ingen miljö är inställd läses inga konfigurationer.
Om en miljö är inställd genomsöks en config-fil i klassökvägen på* *com/day/cq/portlet/{env}.config där env ersätts med det verkliga värdet för miljön. Den här filen bör innehålla en lista över alla konfigurationsfiler för den här miljön. Dessa filer söks igenom relativt till platsen för konfigurationsfilen. Om filen till exempel innehåller en rad my.service.xml,
den här filen läses från klassökvägen på com/day/cq/portlet/my.service.config.
Namnet på filen består av tjänstens beständiga ID, följt av .config. I föregående exempel är beständighets-ID:t my.service. Konfigurationsfilens format är det format som används av installationsprogrammet för Apache Sling OSGi.
Det innebär att en motsvarande konfigurationsfil måste läggas till för varje miljö. En konfiguration som ska användas i alla miljöer måste anges i alla dessa filer - om den bara är för en enda miljö anges den bara i den filen. Denna mekanism ger fullständig kontroll över vilken konfiguration som läses i vilken miljö.
Det går att använda en annan systemegenskap för att identifiera miljön. Ange systemegenskapen com.day.cq.portet.configproperty som innehåller namnet på den systemegenskap som ska användas i stället för com.day.cq.portet.config.
Invalidering av cachelagring och cachelagring caching-and-caching-invalidation
Portleten, i standardkonfigurationen, cachelagrar svaren som tas emot från AEM WCM i en användarspecifik cache. Cacheminnen måste ogiltigförklaras när ändringar görs i innehållet i publiceringsinstansen. I AEM WCM måste därför en replikeringsagent konfigureras på författarinstansen. Cachen kan också tömmas manuellt. I det här avsnittet beskrivs båda dessa procedurer.
Portleten kan konfigureras med sin egen cache, så att innehållet i portleten visas utan att åtkomst till AEM krävs. Portalen finns som innehåll i /libs/portal/director. Om du vill komma åt innehållet startar du en AEM och hämtar filen från den platsen med CRXDE Lite eller WebDAV.
Du kan antingen distribuera det här paketet vid körning eller lägga till det i portletens webbprogram på WEB-INF/lib/resources/bundles
före distributionen.
När cacheminnet har distribuerats cachelagrar portleten innehållet från publiceringsinstansen. Portletcachen kan göras ogiltig med en dispatchertömning från AEM. Så här konfigurerar du portleten att använda sin egen cache:
-
Konfigurera en replikeringsagent i författaren som har portalservern som mål.
-
Anta att portalservern körs på värden localhost, port 8080 och webbprogrammet för AEM portlet är monterat i kontexten cqportlet, den URL som ska tömmas cachen är
http://localhost:8080/cqportlet/cqbridge/cqpcache?Path=$(path)
. Använd GET som metod.Obs! I stället för att använda en frågeparameter kan du skicka ett http-huvud med namnet Bana.
Tömmer cachen via replikeringsagenten flushing-the-cache-via-replication-agent
Precis som vid normal invalidering av dispatcher kan en replikeringsagent konfigureras för portalens AEM portletcache. När du har konfigurerat replikeringsagenten rensas portalcachen vid varje vanlig sidaktivering.
Om du använder flera portalnoder som kör AEM portlet måste du skapa en agent för varje nod enligt beskrivningen i den här proceduren.
Så här konfigurerar du en replikeringsagent för portalen:
-
Logga in på författarinstansen.
-
På fliken Webbplatser klickar du på verktyg -fliken.
-
Klicka Ny sida… i replikeringsagenterna Nytt… -menyn.
-
I Mall, markera Replikeringsagent och ange ett namn för agenten. Klicka Skapa.
-
Dubbelklicka på den replikeringsagent som du nyss skapade. Den visas som ogiltig eftersom den ännu inte har konfigurerats.
-
Klicka Redigera.
-
I Inställningar väljer du Aktiverad markerar du Dispatcher Flush som serialiseringstyp och anger en timeout för nya försök (till exempel 60000).
-
Klicka på Transport -fliken.
-
I fältet URI anger du portletens rensnings-URI (URL). URI:n har följande format:
code language-xml https://<wps-host>:<port>/<wps-context>/<cq5-portlet-context>/cqbridge/cqpcache
-
Klicka på Utökad -fliken.
-
I HTTP-metod fält, typ GET.
-
I HTTP-huvuden fält, klicka + för att lägga till en ny post och typ Sökväg: {path}.
-
Klicka vid behov på Proxy och ange proxyinformation för agenten.
-
Klicka OK för att spara ändringar.
-
Testa anslutningen genom att klicka på Testanslutning länk. Ett loggmeddelande visas som anger om replikeringstestet lyckades. Till exempel:
Manuell tömning av portletcachen manually-flushing-the-portlet-cache
Du kan manuellt tömma portletcachen genom att gå till samma URL som konfigurerats för replikeringsagenten. Se Tömmer cache för URL-formatet. Dessutom måste URL-adressen utökas med URL-parametern Path=<path> för att ange vad som ska rensas.
Till exempel:
https://10.0.20.99:10040/wps/PA_CQ5_Portlet/cqbridge/cqpcache?Path=*
tömmer hela cacheminnet. https://10.0.20.99:10040/wps/PA_CQ5_Portlet/cqbridge/cqpcache?Path=/content/mypage/xyz
tömningar /content/mypage/xyz
från cacheminnet.
Portal Security portal-security
Portalen är den drivande autentiseringsmekanismen. Du kan logga in AEM med en teknisk användare, portalanvändaren, en grupp och så vidare. Portleten har ingen åtkomst till lösenordet för användaren i portalen, så om portleten inte känner till alla autentiseringsuppgifter för att kunna logga in en användare måste en SSO-lösning användas. I det här fallet vidarebefordrar AEM portleten all nödvändig information till AEM, som i sin tur vidarebefordrar informationen till den underliggande AEM. Det här beteendet är anslutningsbart och kan anpassas.
Autentisering vid publicering authentication-on-publish
I det här avsnittet beskrivs de tillgängliga autentiseringslägena som portleten kan använda för att kommunicera med de underliggande AEM WCM-instanserna.
Som standard skickas ingen användarinformation till publiceringsinstansen för AEM. innehållet alltid visas som anonym användare. Om användarspecifik information ska skickas från AEM eller om användarautentisering krävs för publicering måste detta vara aktiverat.
Åtkomst till portletens autentiseringskonfiguration accessing-the-portlet-s-authentication-configuration
De alternativ för autentiseringskonfiguration som portleten använder i AEM WCM-instanser finns tillgängliga i webbkonsolen (OSGi-konfiguration).
Så här kommer du åt portletens autentiseringskonfiguration:
-
Gå till webbkonsolen på följande URL:
http://localhost:8080/cqportlet/cqbridge/system/console
I standardkonfigurationen:
https://wps-host:10040/wps/PA_CQ5_Portlet/cqbridge/system/console
-
Logga in på webbkonsolen. Standardautentiseringsuppgifterna är
admin/admin
. -
I konsolen väljer du Konfiguration.
-
I Konfiguration väljer du en viss tjänst att konfigurera. Tjänsterna tillhandahålls av portleten i OSGi-ramverket.
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 Tjänstnamn Beskrivning Day Portal Director Authenticator Konfigurera vilket autentiseringsläge som används för AEM WCM-instanser. Beroende på det valda läget kan en teknisk användare eller namnet på SSO-cookien anges. Autentisering för AEM WCM-publiceringsinstanser kan också aktiveras. Dagsportalens Director-filcache Konfigurera parametrarna för hur portleten cachelagrar svar som tas emot från AEM WCM-instanser. Day Portal Director HTTP Client Service Konfigurera hur portleten ansluter via HTTP till underliggande AEM WCM-instanser. Du kan till exempel ange en proxyserver. Day Portal Director Locale Handler Konfigurera vilka språk portleten stöder. Förfrågningar om att AEM WCM-instanser baseras på användarens språkområde. till exempel användarspråk *German *skulle begära /content/geometrixx/de/
…Day Portal Director Privilege Manager Konfigurera om portleten ska testa fliken Webbplatser baserat på den inloggade användaren. Day Portal Director Toolbar Renderer Anpassa återgivningen av portletens verktygsfält. -
Dessutom kan du konfigurera webbkonsolen och loggningstjänsten. Du kan till exempel ändra administratörsautentiseringsuppgifterna för webbkonsolen genom att klicka på länken Apache Felix OSGi Management Console.
Tekniskt användarläge technical-user-mode
I standardläge autentiseras alla begäranden som skickas av portleten för den AEM WCM-författarinstansen med samma tekniska användare, oavsett vilken portalanvändare som används. Tekniskt användarläge är aktiverat som standard. Du aktiverar/inaktiverar det här läget i respektive konfigurationsskärm i OSGi-hanteringskonsolen:
Den angivna tekniska användaren måste finnas på AEM WCM-författarinstans och på publiceringsinstansen om Autentisera vid publicering är aktiverat. Se till att ge användaren tillräcklig behörighet för redigeringsarbetet.
SSO sso
Portleten har stöd för enkel inloggning med AEM ur lådan. Autentiseringstjänsten kan konfigureras att använda enkel inloggning och överföra den aktuella portalanvändaren med format Grundläggande som en cookie med namnet cqpsso
till AEM. AEM ska konfigureras att använda autentiseringshanteraren för enkel inloggning för sökvägen /. Även cookie-namnet måste konfigureras här.
The crx-quickstart/repository/repository.xml
för AEM måste konfigureras i enlighet med detta:
<LoginModule class="com.day.crx.security.authentication.CRXLoginModule">
...
<param name="trust_credentials_attribute" value="TrustedInfo"/>
<param name="anonymous_principal" value="anonymous"/>
</LoginModule>
SSO-autentiseringsläge sso-authentication-mode
Portleten kan autentisera för AEM WCM med SSO-schemat (Single Sign On). I det här läget vidarebefordras den användare som för närvarande är inloggad på portalen till AEM WCM i form av en SSO-cookie. Om SSO-läge används måste alla portalanvändare med åtkomst till den AEM portleten vara kända för de underliggande AEM WCM-instanserna, vanligtvis i form av AEM WCM-anslutning till LDAP, eller genom att manuellt ha skapat användarna i förväg. Innan enkel inloggning aktiveras i portleten måste även den underliggande AEM WCM-författarinstansen (och publiceringsinstansen, om Autentisera vid publicering är aktiverat) måste konfigureras för att acceptera SSO-baserade begäranden.
Om du vill konfigurera portleten så att SSO-autentiseringsläget används utför du följande steg (beskrivs i detalj i följande avsnitt):
- Aktivera AEM WCM:s databas för att godkänna pålitliga autentiseringsuppgifter.
- Aktivera SSO-autentisering i AEM WCM.
- Aktivera SSO-autentisering i AEM portlet.
Aktivera AEM WCM-databasen för att godkänna pålitliga autentiseringsuppgifter enabling-aem-wcm-s-repository-to-accept-trusted-credentials
Innan enkel inloggning kan aktiveras för AEM WCM måste den underliggande databasen konfigureras så att den godkänner de pålitliga autentiseringsuppgifter som AEM WCM tillhandahåller. Om du vill göra det konfigurerar du AEM database.xml.
-
Öppna följande fil i det filsystem där AEM WCM är installerat:
//crx-quickstart/repository/repository.xml
-
I XML-filen söker du efter posten för LoginModule och lägg till trust_credentials_attribute i konfigurationen:
code language-xml <LoginModule class="com.day.crx.security.authentication.CRXLoginModule"> ... <param name="trust_credentials_attribute" value="TrustedInfo"/> <param name="anonymous_principal" value="anonymous"/> </LoginModule>
-
Starta om AEM WCM för att ändringarna ska börja gälla.
Aktivera SSO-autentisering i AEM WCM enabling-sso-authentication-in-the-aem-wcm
Om du vill aktivera enkel inloggning AEM WCM öppnar du den relevanta konfigurationsposten i AEM WCM:s Apache Felix Web Management Console (OSGi):
-
Gå till konsolen via dess URI på https://<aem-host>:<port>/system/console.
-
Välj SSO-autentiseringshanterare på menyn Konfiguration. I det här exemplet accepterar SSO-hanteraren SSO-begäranden för alla sökvägar baserat på den cookie som tillhandahålls av den AEM portleten. Konfigurationen kan variera.
table 0-row-3 1-row-3 Bana / Aktiverar enkel inloggning för alla begäranden Cookie-namn cqpsso Namnet på den cookie som tillhandahålls av portleten enligt konfigurationen i portletens OSGi-konsol. -
Klicka Spara för att aktivera enkel inloggning. SSO är nu det primära autentiseringsschemat.
För varje begäran AEM WCM tar emot görs först ett försök att utföra SSO-baserad autentisering. Vid fel utförs en återställning till det vanliga grundläggande autentiseringsschemat. Därför är det fortfarande möjligt att ansluta AEM WCM utan enkel inloggning.
Aktivera SSO-autentisering i en AEM enabling-sso-authentication-in-a-aem-portlet
För att den underliggande AEM WCM-instansen ska kunna acceptera SSO-begäranden måste portletens autentiseringsläge växlas från Teknik till SSO.
Så här aktiverar du SSO-autentisering i en AEM portlet:
-
Gå till konsolen via dess URI på https://<aem-host>:<port>/system/console.
-
På menyn Konfiguration väljer du Day Portal Director Authenticator i listan över tillgängliga konfigurationer.
-
Välj SSO i läget. Lämna de andra parametrarna med sina standardvärden.
-
Klicka på Spara för att aktivera enkel inloggning för portleten.
I testsyfte får du tillgång till portleten med portalens administrativa användare när du har skapat samma användare i AEM WCM med administratörsbehörighet.
När du har utfört den här proceduren autentiseras begäranden med enkel inloggning. Ett typiskt utdrag från HTTP-kommunikationen visar att det finns följande SSO- och Portlet-specifika rubriker:
C-12-#001898 -> [GET /mynet/en/_jcr_content/par/textimage/image.img.png HTTP/1.1 ]
C-12-#001963 -> [cq5:locale: en ]
C-12-#001979 -> [cq5:used-locale: en ]
C-12-#002000 -> [cq5:locales: en,en_US ]
C-12-#002023 -> [cqp:user: wpadmin ]
C-12-#002042 -> [cqp:portal: IBM WebSphere Portal/6.1 ]
C-12-#002080 -> [cqp:windowid: 7_CGAH47L000CE302V2KFNOG0084 ]
C-12-#002124 -> [cqp:windowstate: normal ]
C-12-#002149 -> [cqp:portletmode: view ]
C-12-#002172 -> [User-Agent: Jakarta Commons-HttpClient/3.1 ]
C-12-#002216 -> [Host: 10.0.0.68:4502 ]
C-12-#002238 -> [Cookie: $Version=0; cqpsso=Basic+d3BhZG1pbg%3D%3D ]
C-12-#002289 -> [ ]
Aktivera PIN-autentisering enabling-pin-authentication
Om du inte använder standardfunktionerna för infogad redigering i AEM innehållsportlet, men vill att författaren och administrationen ska ingå i portleten utanför portalen direkt i den AEM författarinstansen, bör du aktivera PIN-autentisering. Du måste också ändra konfigurationen för hanteringsknapparna.
Om du vill öppna administrationssidan för webbplatsen eller redigera en sida från portleten använder AEM innehållsportlet den nya nålautentiseringen. Som standard är PIN-autentiseringen inaktiverad och därför måste följande konfigurationsändringar göras i AEM:
-
Aktivera tillförlitlig autentisering i AEM genom att lägga till den betrodda informationen i filen database.xml:
code language-xml <LoginModule class="com.day.crx.security.authentication.CRXLoginModule"> ... <param name="trust_credentials_attribute" value="TrustedInfo"/> </LoginModule>
-
I OSGi-konfigurationskonsolen, som standard på http://localhost:4502/system/console/configMgr, väljer du Autentiseringshanterare för CQ PIN i listrutan.
-
Redigera URL-rotsökväg parameter som bara innehåller det enskilda värdet /.
Behörighet privileges
Vissa funktioner i portleten skyddas av behörigheter. Den aktuella användaren måste ha denna behörighet för att kunna komma åt den här funktionen. Följande privilegier är fördefinierade:
- "toolbar" : Detta är den allmänna behörigheten att visa/använda verktygsfältet i portleten.
- "prefs" : Om användaren har den här behörigheten får användaren se/ändra portletens inställningar.
- "cq-author:edit" : Med det här privilegiet kan användaren anropa redigeringsvyn för innehållet.
- "cq-author:preview" : Med det här privilegiet kan användaren se förhandsgranskningen.
- "cq-author:siteadmin" : Med den här behörigheten kan användaren öppna webbplatsadministratören i AEM.
Det bästa sättet att hantera behörigheter är att använda portalroller och tilldela roller till dessa behörigheter. Detta kan du göra med en OSGi-konfiguration. "Day Portal Director Privilege Manager" kan konfigureras med en uppsättning roller för varje privilegium. Om användaren har en av rollerna har användaren motsvarande behörighet.
Dessutom är det möjligt att definiera den här rollen baserat på åtkomst per portlet-instansbas. Dialogrutan med inställningar för portleten innehåller ett indatafält för var och en av ovanstående privilegier. För varje privilegium kan en kommaavgränsad lista över portletroller konfigureras. Om ett värde är konfigurerat åsidosätter detta den globala konfigurationen från tjänsten "Day Portal Director Privilege Manager" och det kan krävas att samma roller läggs till från den här globala inställningen eftersom rollerna inte sammanfogas! Om inget värde anges används den globala konfigurationen.
Anpassa AEM portletprogram customizing-the-aem-portlet-application
Angivet AEM portletprogram startar en OSGi-behållare i webbprogrammet precis som AEM gör. Med den här arkitekturen kan du utnyttja alla fördelarna med OSGi:
- Enkelt att uppdatera och utöka
- Tillhandahåller aktiva uppdateringar av portleten utan någon interaktion med portalservern
- Enkelt att anpassa portleten
Verktygsfältsknappar toolbar-buttons
Verktygsfältet och dess knappar är konfigurerbara och kan anpassas. Du kan lägga till egna knappar i verktygsfältet eller definiera vilka knappar som ska visas i vilket läge. Varje knapp är en OSGi-tjänst som kan konfigureras via en OSGi-konfiguration.
OSGi-webbkonsolen visar alla knappkonfigurationer på Konfiguration -fliken. För varje knapp kan du definiera i vilket läge knappen ska visas. På så sätt kan du inaktivera en knapp genom att t.ex. ta bort alla lägen.
Som standard använder AEM innehållsportlet redigeringsfunktionen. Om du föredrar att växla till AEM författarinstans för redigering aktiverar du SiteAdmin-knapp och ContentFinder-knapp, men inaktivera Knappen Redigera. I så fall måste du konfigurera PIN-autentiseringen korrekt i AEM.
Portletens verktygsfältslayout kan anpassas genom att installera ett paket via portletens Felix Web Console, som innehåller anpassad CSS/HTML på en fördefinierad plats.
Paketstruktur bundle-structure
Följande är ett exempel på paketstruktur:
$ jar tvf target/toolbarlayout-0.0.1-SNAPSHOT.jar | awk '{print $8}'
META-INF/
META-INF/MANIFEST.MF
/com/day/cq/portlet/toolbar/layout/
/com/day/cq/portlet/toolbar/layout/author.gif
/com/day/cq/portlet/toolbar/layout/back.gif
/com/day/cq/portlet/toolbar/layout/button.html
/com/day/cq/portlet/toolbar/layout/edit.gif
/com/day/cq/portlet/toolbar/layout/manage.html
/com/day/cq/portlet/toolbar/layout/publish.html
/com/day/cq/portlet/toolbar/layout/refresh.gif
/com/day/cq/portlet/toolbar/layout/siteadmin.gif
/com/day/cq/portlet/toolbar/layout/toolbar.css
Mappen META-INF innehåller filen MANIFEST.MF som krävs av OSGi för att identifiera den som ett paket. Det ser ut så här:
Manifest-Version: 1.0
Built-By: djaeggi
Created-By: Apache Maven Bundle Plugin
Import-Package: com.day.cq.portlet.toolbar.layout
Bnd-LastModified: 1234178347159
Export-Package: com.day.cq.portlet.toolbar.layout
Bundle-Version: 0.0.1.SNAPSHOT
Bundle-Name: Company CQ5 Portal Director Portlet Toolbar Layout
Bundle-Description: This bundle provides a custom layout for the CQ5 P
ortal Director Portlet Toolbar.
Build-Jdk: 1.5.0_16
Bundle-ManifestVersion: 2
Bundle-SymbolicName: com.day.cq.portlet.company.toolbarlayout
Tool: Bnd-0.0.255
Det faktum att HTML/CSS/images finns i mappen /com/day/cq/portlet/toolbar/layout krävs av portleten och kan inte ändras. På samma rader måste även rubrikerna Import-Package och Export-Package i MANIFEST.MF heta /com/day/cq/portlet/toolbar/layout. Bundle-SymbolicName måste vara ett unikt, fullständigt kvalificerat paketnamn.
Du kan skapa den med ett verktyg som maven eller manuellt skapa en sådan jar-fil med den relevanta rubrikuppsättningen som visas i det här avsnittet.
Vyer i verktygsfältet Portlet portlet-toolbar-views
Portletens verktygsfält har i princip två visningslägen. Varje vy och tillhörande knappar kan anpassas med en HTML-fil.
Publiceringsvy publish-view
Publiceringsvyn har bara en knapp som växlar verktygsfältet till vyn Hantera. Publiceringsvyn representeras av filen publish.html i föregående paket. I HTML kan du använda följande platshållare, som ersätts av portleten med respektive innehåll när de återges:
Platshållare för publiceringsvyn publish-view-placeholders
Hantera vy manage-view
I vyn Hantera finns fyra knappar: Redigera, fliken Webbplatser, Uppdatera och Bakåt. Den hanterade vyn representeras av filen manage.html i föregående paket. I HTML kan du använda följande platshållare, som ersätts av portleten med respektive innehåll när de återges:
Hantera visning av platshållare manage-view-placeholders
Knappar buttons
Knappar, oavsett vilken vy de visas, använder samma HTML, som definieras i button.html.
I HTML kan du använda följande platshållare, som ersätts av portleten med respektive innehåll när de återges:
Knapparna Hantera och Publicera vy manage-and-publish-view-buttons
Exempel på en button.html-fil:
<div class="cqp_button">
<a href="#" onclick="{onclick}">
<img src="/wps/PA_CQ5_Portlet/cqbridge/static/{id}.gif" alt="{text}"
title="{text}"/>
</a>
</div>
Installera en anpassad layout installing-a-custom-layout
Gå till portletens OSGI-webbkonsol för att installera en anpassad layout Paket och ladda upp paketet.
Paket packages
Om du behöver överföra, eller skapa, paket för din installation finns mer information i Pakethanteraren i AEM dokumentation.
Länkhantering link-handling
Alla länkar skrivs om för att fungera i portalkontexten. Som standard används länkar med renderingsparametrar. Portal Director HTML Rewriter kan konfigureras att använda åtgärdslänkar i stället.
Du kan också definiera ytterligare frågeparametrar som ska efterfrågas för innehållssökvägen som ska visas. Detta är praktiskt om det till exempel finns en länk från utsidan till specifikt innehåll.
Dessutom kan portalen Director HTML Rewriter konfigureras med en lista över reguljära uttryck som definierats exkluderar för länkreskrivning. Om du till exempel har relativa länkar till externa system bör du lägga till dem i den här exkluderingslistan.
Lokalisering localization
Den AEM innehållsportleten har en inbyggd lokaliseringsfunktion som ser till att innehållet från AEM är på rätt språk.
Detta görs i två steg:
- Språkavkännaren för portalkatalogen identifierar portalanvändarens språkområde genom att hämta språkinställningen från portalen. Den här tjänsten måste konfigureras med listan över tillgängliga språk i AEM.
- Hanteraren för portalens Director-språk hanterar lokaliseringen av den aktuella begäran. Det tar sökvägen till det begärda innehållet, till exempel
/content/geometrixx/en/company.html
och enligt konfigurationen skrivs en med användarens faktiska språkområde.
Portal Director Locale Handler kan konfigureras med sökvägar för att kontrollera språkinformation - vanligtvis innehåller detta allt under /content
och med positionen för språkinformationen i sökvägen. Som standard följer språkhanteraren rekommendationen att strukturera flerspråkiga webbplatser i AEM.
Om webbplatsen inte har någon strikt regel för hantering av språkinformationen i sökvägen går det att ersätta språkhanteraren med din egen implementering.
OSGi-tjänster som tillval optional-osgi-services
OSGi-tjänster som tillval kan implementeras för att anpassa olika delar av portleten. Varje tjänst motsvarar ett Java-gränssnitt. Gränssnittet kan implementeras och distribueras via ett paket i portleten.
Ersätter standardtjänster replacing-default-services
Följande tjänster har en standardimplementering i innehållsportleten (med motsvarande Java-gränssnitt). För att kunna anpassa måste ett paket som innehåller den nya tjänstimplementeringen distribueras till portletprogrammet.
När du implementerar en sådan tjänst ska du se till att ange service.ranking egenskapen för tjänsten till ett positivt värde. Standardimplementeringen använder rangordningen 0 och portleten använder tjänsten med högst rankning.
Portlethändelser portlet-events
Portlet API (JSR-286) anger portlethändelser. Den AEM innehållsportleten har en integrerad brygga som distribuerar portlethändelser för den AEM portleten som OSGi-händelser, vilket gör att hantering av portlethändelser kan kopplas ihop.
Om du vill hantera specifika händelser deklarerar du dessa som mottagningshändelser i distributionsbeskrivningen (eller konfigurerar dem via portalservern) och implementerar en OSGi-tjänst som deklarerar EventHandler-gränssnittet (se OSGi EventAdmin-specifikationen).
När en portlethändelse inträffar skickas en specifik OSGi-händelse som anropar hanteraren. Hanteraren hämtar all kontextinformation och kan uppdatera portletens status i enlighet med detta eller skicka nya händelser. I hanteringsmetoden kan i princip alla funktioner i portlethändelsefasen användas.
Använda AEM som portal using-aem-as-a-portal
Använd Portlet-komponenten för att lägga till portletfönster AEM sidor. Delade bibliotek som du installerar på programservern gör att Portlet-komponenten kan identifiera distribuerade portletprogram.
Utför följande uppgifter om du vill använda AEM som en portal:
- Installera Portlet-komponenten och delade bibliotek.
- Lägg till portletkomponenten i Sidespark.
- Konfigurera och distribuera webbprogrammet som innehåller de portlets som du vill ska visas i portalkomponenten.
- Lägg till portletkomponenten på en sida och markera portleten som ska visas.
Installera portletkomponenten installing-the-portlet-component
Den AEM QuickStart JAR-filen innehåller portletkomponentfilerna. Om du vill hämta filerna (cq-portlet-components.zip) kan du antingen köra QuickStart eller extrahera innehållet.
-
Kör eller extrahera innehållet i JAR-filen Quickstart och leta reda på filen cq-portlet-components.zip i enlighet med detta:
- Kör snabbstart: crx-quickstart/opt/portal
- Extract Quickstart contents: static/opt/portal
-
Öppna Package Manager för den CQ5-författarinstans som distribueras till programservern. (https://appserverhost:port/cq5author/crx/packmgr)
-
Använd Pakethanteraren för att Överför och installera paketet cq-portlets-components.zip.
Paketet installerar cq-portlet-director-sharedlibs-x.x.x.jar i mappen /libs/portal/director i databasen.
-
Kopiera cq-portlet-director-sharedlibs-x.x.x.jar till hårddisken. Använd valfritt sätt för att hämta filen, till exempel FileVault eller en WebDAV-klient.
-
Flytta filen cq-portlet-director-sharedlibs.x.x.x.jar till den delade biblioteksmappen på programservern så att klasserna är tillgängliga för distribuerade portletprogram.
Lägga till portletkomponenten i Sidekick adding-the-portlet-component-to-sidekick
Lägg till portletkomponenten i styckesystemet så att den är tillgänglig för författare.
-
Klicka på linjalens ikon i Sidspark för att gå till designläge.
-
Förutom
Design of par
rubrik ovanför första stycket, klicka Redigera. -
I Allmänt markerar du kryssrutan bredvid portletkomponenten och klickar på OK.
Konfigurera och distribuera portletprogram configuring-and-deploying-your-portlet-applications
Distribuera portlets till programserverns webbbehållare så att de är tillgängliga för portalkomponenten. Innan du distribuerar portletprogrammet måste du konfigurera programmet så att det läser in AEM portalbehållarserver. Den här konfigurationen gör att Portlet-komponenten kan komma åt portlets.
-
Extrahera innehållet i portletprogrammets WAR-fil.
Tips: jar xf nameofapp.war-kommandot extraherar filerna.
-
Öppna filen web.xml i en textredigerare.
-
Lägg till följande serverkonfiguration i elementet för webbprogram:
code language-xml <servlet> <servlet-name>slingportal</servlet-name> <servlet-class>org.apache.sling.portal.container.api.ContainerServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>slingportal</servlet-name> <url-pattern>/SlingPortletInvoker</url-pattern> </servlet-mapping>
-
Spara filen web.xml och paketera om WAR-filen.
Tips: The
jar cvf nameofapp.war *
lägger till innehåll i den aktuella katalogen i filen nameofapp.war. -
Distribuera portletprogrammet till programservern. Mer information finns i dokumentationen för programservern.
Lägga till portlets på AEM adding-portlets-to-your-aem-page
Använd portalkomponenten för att lägga till ett portletfönster på webbsidan. Använd komponentegenskaperna för att ange vilken portlet som ska visas.
-
På webbsidan drar du Portlet från gruppen General i Sidespark till sidan.
note note NOTE När du har dragit komponenten till sidan, läser du in sidan igen för att säkerställa att den fungerar som den ska. -
Dubbelklicka på komponenten för att öppna Portlet-egenskaperna.
-
I Portletenhet väljer du portleten i listan.
-
Markera eller rensa Dölj namnlist beroende på om du vill se portletens namnlist.
-
I Portlet Window anger du ett unikt portletfönster-ID, om du vill.
note note NOTE Om du planerar att använda samma portlet flera gånger på samma sida ger du varje portlet ett eget fönster-ID. -
Klicka OK. Portleten visas på din AEM.
Installera, konfigurera och använda AEM i en portlet installing-configuring-and-using-aem-in-a-portlet
För att få åtkomst till innehåll som tillhandahålls av AEM WCM måste portalservern vara utrustad med den AEM portalen Director Portlet. Det gör du genom att installera, konfigurera och lägga till portleten på portalsidan med hjälp av stegen i det här avsnittet.
Portleten ansluter som standard till publiceringsinstansen vid localhost:4503 och till författarinstansen vid localhost:4502. Dessa värden kan ändras under distributionen av portleten. Portaldirektören är tillgänglig som innehåll i databasen under /libs/portal/directory. Du måste hämta programmets krigsfil innan du kan använda den.
Laddar ned krigsfilen downloading-the-war-file
-
Navigera till /libs/portal/director med hjälp av antingen Webdav eller CRXDE Lite.
-
Hämta cq-portlet-webapp.war.
Installera portleten installing-the-portlet
Så här installerar du portleten:
-
Logga in på portalen med administratörsbehörighet.
-
Navigera till Portlet Management-delen av webbportalen.
-
Klicka på Installera och bläddra till det AEM portletprogrammet (cq-portlet-webapp.war) som du hämtade och ange annan viktig information om portleten.
För annan viktig portletinformation kan du antingen godkänna standardvärdena eller ändra värdena. Om du godkänner standardvärdena är portleten tillgänglig på https://<wps-host>:<port>/wps/PA_CQ5_Portlet. OSGi-administrationskonsolen som tillhandahålls av portleten finns på https://<wps-host>:<port>/wps/PA_CQ5_Portlet/cqbridge/system/console (standardanvändarnamn/lösenord är admin/admin).
-
Se till att portletprogrammet startar automatiskt genom att markera det alternativet eller kryssrutan och spara ändringarna. Ett meddelande visas om att installationen lyckades.
Konfigurera portleten configuring-the-portlet
När du har installerat portleten måste du konfigurera den så att den känner till URL:erna för de underliggande AEM instanserna (författare och publicering). Du kan också konfigurera andra alternativ.
Så här konfigurerar du portleten:
-
I portaladministrationsfönstret på programservern navigerar du till portlethantering, där alla portlets är listade och väljer AEM Portal Director portlet.
-
Konfigurera portleten efter behov. Du kan till exempel behöva ändra URL:en för författaren och publiceringsinstanserna samt URL:en för startsökvägen. Standardkonfigurationer beskrivs i Portletinställningar.
note note NOTE Om portleten är konfigurerad för att ansluta till AEM författare och publicera instanser som körs på en annan kontextsökväg än / måste du aktivera kraften CQUrlInfo i HTML Library Manager-konfigurationen för dessa AEM (t.ex. via Felix Webconsole) fungerar inte redigering och dialogrutan med inställningar visas inte. -
Spara konfigurationsändringarna i programservern.
-
Navigera till OSGI-administrationskonsolen för portleten. Standardplatsen är
https://<wps-host>:<port>/wps/PA_CQ5_Portlet/cqbridge/system/console/configMgr
. Standardanvändarnamn/lösenord är admin/admin. -
Välj Konfiguration av Director CQ Server-dagsportal konfigurera och redigera följande värden:
- Bas-URL för författare: Bas-URL:en för AEM författarinstans.
- Publicera bas-URL: Bas-URL för den AEM publiceringsinstansen.
- Författaren används som publicerad: Används författarinstansen som en publiceringsinstans (för utveckling)?
-
Klicka Spara. Nu kan du lägga till portleten på portalsidor och använda portalen.
Innehålls-URL:er content-urls
När innehåll begärs från AEM, använder portleten det aktuella visningsläget (publicera eller författare) och den aktuella sökvägen för att sätta ihop en fullständig URL. Med standardvärdena är den första URL:en http://localhost:4503/content/geometrixx/en.portlet.html
. Värdet för htmlSelector
läggs automatiskt till i URL:en före tillägget.
Om portleten växlar till hjälpläget och appendHelpViewModeAsSelector
är markerad och sedan help
-väljaren är också tillagd, till exempel http://localhost:4503/content/geometrixx/en.portlet.html.help
. Om portletfönstret är maximerat och appendMaxWindowStateAsSelector
är markerad och väljaren läggs också till, till exempel http://localhost:4503/content/geometrixx/en.portlet.max.help
.
Väljarna kan utvärderas i AEM och en annan mall kan användas för olika väljare.
Använda en innehålls-URL-karta i AEM using-a-content-url-map-in-aem
Vanligtvis pekar startbanan direkt mot innehållet i AEM. Om du vill behålla startbanorna i AEM i stället för i portletinställningarna kan du peka startbanan mot en innehållskarta i AEM, som /var/portlets
. I det här fallet kan ett skript som körs i AEM använda den skickade informationen från portleten för att avgöra vilken URL som är start-URL:en. Den ska skicka en omdirigering till rätt URL.
Lägga till portleten på portalsidan adding-the-portlet-to-the-portal-page
Så här lägger du till portleten på portalsidan:
-
Se till att du är i administrationsfönstret på programservern och navigerar till den plats där du hanterar sidor. (i t.ex. WebSphere 6.1 klickar du Hantera sidor).
-
Markera namnet på portleten och välj sedan en befintlig sida eller skapa en ny sida.
-
Redigera sidlayouten.
-
Markera portleten och lägg till den i en behållare.
-
Spara ändringarna.
Använda portleten using-the-portlet
Så här kommer du åt sidan som du lade till i portleten:
- Konfigurera portleten som du konfigurerade den i portalen på portletens anpassningsmeny.
- Öppna konfigurationen (portleten visar den publiceringsstart-URL som konfigurerats i portletens konfiguration) och gör de ändringar som behövs och spara dem sedan.