Il presente documento descrive quanto segue:
AEM'architettura del portale include le definizioni di portali e portlet.
Un portale è un'applicazione Web che offre personalizzazione, single sign-on, integrazione dei contenuti da origini diverse e ospita il livello di presentazione dei sistemi informativi.
È possibile eseguire portlet conformi a JSR 286 in AEM. Il componente portlet consente di incorporare un portlet nella pagina. Consultate Amministrazione del AEM Portlet dei contenuti.
I portlet sono componenti Web distribuiti all'interno di un contenitore che genera contenuto dinamico. L'interfaccia portlet è inclusa in un pacchetto e distribuita come file .war all'interno di un contenitore portlet. Se si esegue AEM come portale, è necessario il file .war del portlet per eseguire il portlet.
Per configurare AEM contenuto affinché venga visualizzato in un portale, vedere Installazione, configurazione e utilizzo AEM in un portlet.
L’Director AEM Portal è obsoleto a partire da AEM 6.4. Vedere Funzioni obsolete e rimosse.
Il portlet del contenuto AEM consente di visualizzare AEM contenuto in un portale. Il portlet è disponibile in /crx-quickstart/opt/portal
e può essere personalizzato in vari modi. Ad esempio, potete personalizzare la gestione SSO/Autenticazione distribuendo il vostro servizio di autenticazione generando le informazioni di autenticazione necessarie per AEM sovrascrivere il comportamento predefinito. I plug-in utilizzano un'API definita che consente di aggiungere funzionalità personalizzate creando il plug-in rispetto all'API. Il plug-in può essere implementato nella porta in esecuzione. Per funzionare correttamente, è necessario configurare l’istanza di creazione e pubblicazione AEM insieme al percorso del contenuto da visualizzare all’avvio.
Alcune delle configurazioni possono essere modificate tramite le preferenze portlet e altre mediante le configurazioni di servizio OSGi. Per modificare queste configurazioni, utilizzate i file config o la console Web OSGi.
Le preferenze dei portlet possono essere configurate al momento della distribuzione nel server portale o modificando il file WEB-INF/portlet.xml prima di distribuire l'applicazione Web portlet. Il file portlet.xml viene visualizzato come segue per impostazione predefinita:
<?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>
Il portlet può essere configurato con le seguenti preferenze:
startPath | Percorso iniziale del portlet: definisce il contenuto inizialmente visualizzato. Importante: Se il portlet è configurato per collegarsi a AEM istanze di creazione e pubblicazione eseguite su un percorso di contesto diverso da /, è necessario abilitare la forza CQUrlInfo nella configurazione Html Library Manager di queste istanze AEM (ad esempio tramite Felix Webconsole) oppure la modifica non funzionerà e la finestra di dialogo delle preferenze non verrà visualizzata. |
htmlSelector | Selettore aggiunto a ogni URL. Per impostazione predefinita si tratta di portlet, pertanto tutte le richieste alle pagine html utilizzano URL che terminano in .portlet.html. Questo consente l'uso di script personalizzati all'interno di AEM per il rendering portlet. |
addCssToPortalHeader | Per impostazione predefinita, i file css inclusi nella pagina HTML da AEM sono inclusi nel portlet. La disattivazione di questa opzione esclude i file css predefiniti. Se questa opzione è attivata, i file CSS vengono aggiunti all'intestazione della pagina html o incorporati nella pagina html a seconda del comportamento del portale. |
includeToolbar | Per impostazione predefinita, all’interno del portlet del contenuto viene eseguito il rendering di una barra degli strumenti per la funzionalità di gestione. Disattivando questa opzione, non viene eseguito il rendering di alcuna barra degli strumenti. |
urlParameterNames | Elenco di nomi di parametri URL alternativi che potrebbero contenere il nuovo URL di contenuto da visualizzare per il portlet. L'elenco viene elaborato dall'alto verso il basso e viene utilizzato il primo parametro contenente un valore. Se non viene trovato alcun URL, viene utilizzato il parametro URL predefinito. L’URL fornito viene utilizzato, così come è, senza ulteriori modifiche. Questa impostazione si basa sul portlet distribuito. Inoltre, consente di configurare globalmente alcuni parametri URL nella configurazione OSGi per "Day Portal Director Portlet Bridge". |
favoriteDialog | Percorso della finestra di dialogo delle preferenze in AEM - se lasciato vuoto, verrà utilizzata la finestra di dialogo delle preferenze integrate. Per impostazione predefinita, è /libs/portal/content/prefs.html. |
initialRedirect | Per impostazione predefinita, il portlet esegue un reindirizzamento javascript dell'intera pagina del portale alla prima chiamata. Questo per supportare lo scenario di trascinamento dei server portale moderni. In produzione questo reindirizzamento è raramente necessario e può quindi essere disattivato con questa preferenza impostata su false. |
Se il server del portale viene eseguito su host localhost, porta 8080 e l'applicazione Web AEM portlet è montata nel contesto dell'applicazione Web cqportlet, l'URL per la console Web è http://localhost:8080/cqportlet/cqbridge/system/console
. L'utente e la password predefiniti sono admin.
Aprite la scheda Configurazioni e selezionate Configurazione server CQ di Portal Directory. Qui si specifica l’URL di base per l’istanza di creazione e pubblicazione. Questa procedura è descritta in Configurazione del portlet.
La console Web OSGi può essere utilizzata solo per modificare le configurazioni durante lo sviluppo (o il test). Accertatevi di bloccare le richieste alla console per i sistemi di produzione.
Per supportare le distribuzioni automatizzate e il provisioning di configurazione, il portlet del contenuto AEM dispone di un supporto di configurazione integrato che tenta di leggere le configurazioni dal percorso di classe fornito all'applicazione portlet.
All'avvio, la proprietà di sistema com.day.cq.portet.config viene letta per rilevare l'ambiente corrente. Solitamente, il valore di questa proprietà è simile a dev, prod, test e così via. Se non è impostato alcun ambiente, non viene letta alcuna configurazione.
Se si imposta un ambiente, la ricerca di un file di configurazione viene eseguita nel percorso di classe in *com/day/cq/portlet/{env}.config, dove env viene sostituito con il valore effettivo per l'ambiente. Questo file deve elencare tutti i file di configurazione per questo ambiente. La ricerca di questi file viene effettuata in relazione alla posizione del file di configurazione. Ad esempio, se il file contiene una riga my.service.xml,
questo file viene letto dal percorso di classe in com/day/cq/portlet/my.service.config.
Il nome del file è costituito dall'ID di persistenza del servizio, seguito da .config. Nell'esempio precedente, l'ID di persistenza è my.service. Il formato del file di configurazione è il formato utilizzato dal programma di installazione Apache Sling OSGi.
Ciò significa che, per ogni ambiente, è necessario aggiungere un file di configurazione corrispondente. Una configurazione che dovrebbe essere applicata a tutti gli ambienti deve essere inserita in tutti questi file - se è solo per un singolo ambiente, è solo inserita in quel file. Questo meccanismo assicura il controllo completo della configurazione in cui viene letto l'ambiente.
È possibile utilizzare una proprietà di sistema diversa per rilevare l'ambiente. Specificare la proprietà di sistema com.day.cq.portet.configproperty contenente il nome della proprietà di sistema da utilizzare invece di com.day.cq.portet.config.
Il portlet, nella configurazione predefinita, memorizza nella cache le risposte ricevute da AEM WCM in una cache specifica dell'utente. Le cache devono essere annullate quando si verificano modifiche nel contenuto dell’istanza di pubblicazione. A tal fine, in AEM WCM è necessario configurare un agente di replica nell'istanza di creazione. La cache può anche essere scaricata manualmente. Questa sezione descrive entrambe le procedure.
Il portlet può essere configurato con una propria cache, in modo che il contenuto del portlet venga visualizzato senza che sia necessario accedere al AEM. Il portale è disponibile come contenuto in /libs/Portal/director. Per accedere al contenuto, avviate un'istanza AEM e scaricate il file da tale posizione utilizzando CRXDE Lite o WebDAV.
Potete distribuire questo bundle in fase di esecuzione o aggiungerlo all'applicazione Web portlet in WEB-INF/lib/resources/bundles
prima della distribuzione.
Dopo la distribuzione della cache, il portlet memorizza nella cache il contenuto dall’istanza di pubblicazione. La cache del portlet può essere invalidata con lo scarico del dispatcher da AEM. Per configurare il portlet in modo che utilizzi la propria cache:
Configurare un agente di replica in autore che esegue la destinazione del server del portale.
Presupponendo che il server portale venga eseguito sull'host localhost, port 8080 e che l'applicazione Web AEM portlet sia montata nel contesto cqportlet, l'URL per lo scaricamento della cache è http://localhost:8080/cqportlet/cqbridge/cqpcache?Path=$(path)
. Utilizzate GET come metodo.
Nota: invece di usare un parametro di richiesta, potete inviare un’intestazione http denominata Path.
Come per la normale invalidazione del dispatcher, un agente di replica può essere configurato per eseguire il targeting della cache AEM portlet del portale. Dopo aver configurato l’agente di replica, ogni normale attivazione della pagina svuota la cache del portale.
Se si gestiscono più nodi portale che eseguono il portlet AEM, è necessario creare un agente per ciascun nodo come descritto in questa procedura.
Per configurare un agente di replica per il portale:
Effettuate l’accesso all’istanza di creazione.
Nella scheda Siti Web fare clic sulla scheda Strumenti.
Fare clic su Nuova pagina… negli agenti di replica Nuovo….
In Template, selezionare Replication Agent e immettere un nome per l'agente. Fai clic su Crea.
Fare doppio clic sull'agente di replica appena creato. Viene visualizzato come non valido in quanto non è ancora stato configurato.
Fai clic su Modifica.
Nella scheda Impostazioni, selezionare la casella di controllo Abilitato, selezionare Dispatcher Flush come tipo di serializzazione, quindi immettere un timeout per i tentativi (ad esempio, 60000).
Fare clic sulla scheda Trasporto.
Nel campo URI immettere l'URI (URL) del portlet. L'URI si trova nel seguente modulo:
https://<wps-host>:<port>/<wps-context>/<cq5-portlet-context>/cqbridge/cqpcache
Fare clic sulla scheda Estese.
Nel campo Metodo HTTP digitare GET.
Nel campo Intestazioni HTTP, fare clic su + per aggiungere una nuova voce e digitare Percorso: {path}.
Se necessario, fare clic sulla scheda Proxy e immettere le informazioni sul proxy per l'agente.
Fare clic su OK per salvare le modifiche.
Per verificare la connessione, fare clic sul collegamento Test Connection. Viene visualizzato un messaggio di registro che indica se il test di replica è riuscito. Esempio:
Potete cancellare manualmente la cache del portlet accedendo allo stesso URL configurato per l'agente di replica. Per il modulo dell'URL, vedere Scorrimento della cache. Inoltre, l’URL deve essere esteso con un parametro URL Path=<percorso> per indicare cosa cancellare.
Esempio:
https://10.0.20.99:10040/wps/PA_CQ5_Portlet/cqbridge/cqpcache?Path=*
svuota la cache completa. https://10.0.20.99:10040/wps/PA_CQ5_Portlet/cqbridge/cqpcache?Path=/content/mypage/xyz
scarica /content/mypage/xyz
dalla cache.
Il portale è il meccanismo di autenticazione guida. Potete accedere AEM con un utente tecnico, l'utente del portale, un gruppo e così via. Il portlet non dispone dell'accesso alla password per l'utente nel portale, pertanto se il portlet non conosce tutte le credenziali per l'accesso corretto a un utente, è necessario utilizzare una soluzione SSO. In questo caso, il portlet AEM inoltra tutte le informazioni necessarie a AEM, che a sua volta trasmette tali informazioni al repository AEM sottostante. Questo comportamento è collegabile e può essere personalizzato.
Questa sezione descrive le modalità di autenticazione disponibili che il portlet può utilizzare per comunicare con le istanze WCM AEM sottostanti.
Per impostazione predefinita, nessuna informazione utente viene inviata all’istanza pubblica di AEM; il contenuto viene sempre visualizzato come utente anonimo. Se le informazioni specifiche per l’utente devono essere distribuite da AEM o se è necessaria l’autenticazione utente per la pubblicazione, questa deve essere attivata.
Le opzioni di configurazione dell'autenticazione che il portlet utilizza AEM istanze WCM sono disponibili nella console Web (configurazione OSGi).
Quando lavorate con AEM esistono diversi metodi per gestire le impostazioni di configurazione per i servizi OSGi (nodi console o repository).
Per informazioni dettagliate, vedere Configurazione di OSGi.
Per accedere alla configurazione di autenticazione del portlet:
Accedete alla console Web al seguente URL:
http://localhost:8080/cqportlet/cqbridge/system/console
Ad esempio, nella configurazione predefinita:
https://wps-host:10040/wps/PA_CQ5_Portlet/cqbridge/system/console
Accedete alla console Web. Le credenziali predefinite sono admin/admin
.
Nella console, selezionare Configuration.
Nel menu Configuration, selezionare un particolare servizio da configurare. I servizi sono forniti dal portlet nel framework OSGi.
Nome servizio | Descrizione |
---|---|
Day Portal Director Authenticator | Configurare la modalità di autenticazione utilizzata per AEM istanze WCM. A seconda della modalità selezionata, è possibile specificare un utente tecnico o il nome del cookie SSO. Inoltre, è possibile abilitare l'autenticazione per AEM istanze di pubblicazione WCM. |
Cache dei file Director del portale giornaliero | Configurate i parametri di come il portlet memorizza nella cache le risposte ricevute dalle istanze WCM AEM. |
Servizio client HTTP Director Day Portal | Configurare la modalità di connessione della porta tramite HTTP alle istanze WCM sottostanti AEM. Ad esempio, potete specificare un server proxy. |
Gestore di impostazioni internazionali Director Day Portal | Configurare le impostazioni internazionali supportate dal portlet. Le richieste di AEM istanze WCM si basano sulle impostazioni internazionali dell'utente; ad esempio, lingua utente *Tedesco *richiederebbe /content/geometrixx/de/ … |
Day Portal Director Privilege Manager | Configurare se il portlet deve testare la scheda Siti Web in base all'utente attualmente connesso. |
Modulo di rendering Director Toolbar per Day Portal | Personalizzare il rendering della barra degli strumenti della portlet. |
È inoltre possibile configurare la console Web e il servizio di registrazione. Ad esempio, potete modificare le credenziali di amministratore per la console Web facendo clic sul collegamento della console di gestione Apache Felix OSGi.
In modalità predefinita, tutte le richieste emesse dal portlet per l'istanza di creazione AEM WCM vengono autenticate utilizzando lo stesso utente tecnico, indipendentemente dall'utente corrente del portale. La modalità Utente tecnico è attivata per impostazione predefinita. Questa modalità viene attivata o disattivata nella rispettiva schermata di configurazione nella console di gestione OSGi:
L'utente tecnico specificato deve esistere nell'istanza di creazione AEM WCM e nell'istanza di pubblicazione se è abilitata l'autenticazione su Publish. Assicuratevi di concedere agli utenti i privilegi di accesso sufficienti per le operazioni di authoring.
Il portlet supporta SSO con AEM out of the box. Il servizio di autenticazione può essere configurato per utilizzare SSO e trasmettere l'utente del portale corrente con il formato Basic come cookie denominato cqpsso
da AEM. AEM deve essere configurato per utilizzare il gestore di autenticazione SSO per path /. Anche in questo caso è necessario configurare il nome del cookie.
È necessario configurare di conseguenza il crx-quickstart/repository/repository.xml
per AEM repository:
<LoginModule class="com.day.crx.security.authentication.CRXLoginModule">
...
<param name="trust_credentials_attribute" value="TrustedInfo"/>
<param name="anonymous_principal" value="anonymous"/>
</LoginModule>
La portlet può autenticarsi per AEM WCM utilizzando lo schema Single Sign On (SSO). In questa modalità, l'utente che ha effettuato l'accesso al portale viene inoltrato a AEM WCM sotto forma di cookie SSO. Se viene utilizzata la modalità SSO, tutti gli utenti del portale con accesso al portlet AEM devono essere noti alle istanze WCM sottostanti AEM, più comunemente AEM WCM collegato a LDAP, oppure aver creato manualmente gli utenti in anticipo. Inoltre, prima di abilitare SSO nel portlet, è necessario configurare l'istanza di creazione WCM sottostante (e l'istanza di pubblicazione, se è attivata l'opzione Autenticazione su Pubblica) per accettare richieste basate su SSO.
Per configurare il portlet per l'utilizzo della modalità di autenticazione SSO, completa i seguenti passaggi (descritti in dettaglio nelle sezioni seguenti):
Prima di poter abilitare SSO per AEM WCM, è necessario configurare il repository sottostante per accettare le credenziali attendibili fornite da AEM WCM. A tal fine, è possibile configurare AEM repository.xml.
Nel file system in cui è installato AEM WCM, aprite il file seguente:
//crx-quickstart/repository/repository.xml
Nel file XML, individuate la voce relativa al LoginModule e aggiungete l'attributo trust_Credentials_alla configurazione:
<LoginModule class="com.day.crx.security.authentication.CRXLoginModule">
...
<param name="trust_credentials_attribute" value="TrustedInfo"/>
<param name="anonymous_principal" value="anonymous"/>
</LoginModule>
Per rendere effettive le modifiche, riavviate AEM WCM.
Per abilitare SSO in AEM WCM, accedi alla voce di configurazione corrispondente nella console di gestione Web Apache Felix di AEM WCM (OSGi):
Accedete alla console tramite il relativo URI all'indirizzo https://<AEM-host>:<porta>/system/console.
Nel menu Configurazione, selezionate Gestore autenticazione SSO. In questo esempio, il gestore SSO accetta richieste SSO per tutti i percorsi basati sul cookie fornito dal portlet AEM. La configurazione può variare.
Percorso | / | Abilita il gestore SSO per tutte le richieste |
---|---|---|
Nomi cookie | cqpsso | Nome del cookie fornito dal portlet come configurato nella console OSGi del portlet. |
Fare clic su Salva per abilitare SSO. SSO è ora lo schema di autenticazione principale.
Per ogni richiesta ricevuta AEM WCM, viene tentata innanzitutto l'autenticazione basata su SSO. In caso di errore, viene eseguito un fallback allo schema di autenticazione di base usuale. Come tale, restano possibili le normali connessioni a AEM WCM senza SSO.
Affinché l'istanza WCM sottostante accetti le richieste SSO, la modalità di autenticazione del portlet deve passare da Technical a SSO.
Per abilitare l'autenticazione SSO in una porta AEM:
Accedete alla console tramite il relativo URI all'indirizzo https://<aem-host>:<porta>/system/console.
Nel menu Configurazione, selezionate Day Portal Director Authenticator dall'elenco delle configurazioni disponibili.
In Modalità, selezionare SSO. Lasciate gli altri parametri con i relativi valori predefiniti.
Fate clic su Salva per abilitare SSO per il portlet.
A scopo di test, accedete al portlet con l'utente amministrativo del portale, dopo aver creato lo stesso utente in AEM WCM con privilegi di amministratore.
Dopo aver eseguito questa procedura, le richieste vengono autenticate tramite SSO. Un frammento tipico della comunicazione HTTP rivela la presenza delle seguenti intestazioni SSO e portlet specifiche:
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 -> [ ]
Se non utilizzate le funzioni di modifica in linea predefinite del portlet del contenuto AEM, ma desiderate che la parte di creazione e amministrazione del portlet sia esterna al portale direttamente nell'istanza di AEM autore, è necessario abilitare l'autenticazione PIN. È inoltre necessario modificare la configurazione dei pulsanti di gestione.
Per aprire la pagina di amministrazione del sito Web o modificare una pagina dal portlet, il portlet del contenuto AEM utilizza la nuova autenticazione pin. Per impostazione predefinita, l’autenticazione pin è disattivata, pertanto è necessario apportare le seguenti modifiche alla configurazione in AEM:
Abilita l'autenticazione attendibile in AEM aggiungendo le informazioni attendibili nel file repository.xml:
<LoginModule class="com.day.crx.security.authentication.CRXLoginModule">
...
<param name="trust_credentials_attribute" value="TrustedInfo"/>
</LoginModule>
Nella console di configurazione OSGi, per impostazione predefinita si trova in http://localhost:4502/system/console/configMgr, selezionare Gestore autenticazione PIN CQ dal menu a discesa.
Modificate il parametro URL Root Path in modo che contenga solo il singolo valore /.
Alcune funzioni del portlet sono protette da privilegi. L'utente corrente deve avere questo privilegio per poter accedere a questa funzione. Sono disponibili i seguenti privilegi predefiniti:
L'approccio migliore per gestire i privilegi consiste nell'utilizzare i ruoli del portale e assegnare ruoli a tali privilegi. Questo può essere fatto tramite una configurazione OSGi. Il "Day Portal Director Privilege Manager" può essere configurato con un set di ruoli per ciascun privilegio. Se l'utente dispone di uno dei ruoli, l'utente dispone dei privilegi corrispondenti.
Inoltre, è possibile definire questo accesso basato su un ruolo in base a un'istanza portlet. La finestra di dialogo delle preferenze del portlet contiene un campo di immissione per ciascuno dei privilegi di cui sopra. Per ciascun privilegio è possibile configurare un elenco di ruoli portlet separati da virgole. Se un valore è configurato, questo sostituisce la configurazione globale dal servizio "Day Portal Director Privilege Manager" e potrebbe essere necessario aggiungere gli stessi ruoli da questa impostazione globale, in quanto i ruoli non vengono uniti. Se non viene specificato alcun valore, viene utilizzata la configurazione globale.
L’applicazione portlet AEM fornita avvia un contenitore OSGi all’interno dell’applicazione Web, come AEM. Questa architettura consente di sfruttare tutti i vantaggi di OSGi:
La barra degli strumenti e i relativi pulsanti sono configurabili e possono essere personalizzati. È possibile aggiungere pulsanti personalizzati alla barra degli strumenti o definire quali pulsanti visualizzare in quale modalità. Ogni pulsante è un servizio OSGi configurabile tramite una configurazione OSGi.
Nella console Web OSGi sono elencate tutte le configurazioni di pulsanti nella scheda Configuration. Per ciascun pulsante, è possibile definire in quale modalità viene visualizzato questo pulsante. Questo consente di disattivare un pulsante rimuovendo, ad esempio, tutte le modalità.
Per impostazione predefinita, il portlet del contenuto AEM utilizza la funzionalità di modifica in linea. Tuttavia, se si preferisce passare all'istanza di creazione AEM per la modifica, è necessario attivare il pulsante SiteAdmin e il pulsante ContentFinder, ma disattivare il pulsante Modifica. In questo caso, accertatevi di configurare correttamente l'autenticazione PIN in AEM.
Il layout della barra degli strumenti del portlet può essere personalizzato installando un bundle tramite la console Web Felix del portlet, che contiene CSS/HTML personalizzato in una posizione predefinita.
Esempio di struttura del pacchetto:
$ 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
La cartella META-INF contiene il file MANIFEST.MF richiesto da OSGi per identificarlo come pacchetto. Viene visualizzata come segue:
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
Il fatto che HTML/CSS/images si trovino nella cartella /com/day/cq/portlet/toolbar/layout è imposto dal portlet e non può essere modificato. Sulle stesse righe, le intestazioni Import-Package e Export-Package in MANIFEST.MF devono essere chiamate anche /com/day/cq/portlet/toolbar/layout. Bundle-SymbolicName deve essere un nome di pacchetto univoco e completo.
Potete creare il file utilizzando uno strumento come il cielo o creare manualmente un file JAR con il set di intestazioni corrispondente come mostrato in questa sezione.
La barra degli strumenti della portlet ha sostanzialmente due stati di visualizzazione. Ogni vista e i pulsanti associati possono essere personalizzati con un rispettivo file HTML.
La visualizzazione di pubblicazione dispone di un solo pulsante che consente di passare alla visualizzazione Gestisci della barra degli strumenti. La visualizzazione di pubblicazione è rappresentata dal file publish.html nel pacchetto precedente. Nell’HTML, potete utilizzare i seguenti segnaposto, che vengono sostituiti dal portlet con i rispettivi contenuti al momento del rendering:
Stringa Segnaposto | Descrizione |
---|---|
Il segnaposto è sostituito dal pulsante Manage che sposta lo stato del portlet nello stato di gestione. |
La vista di gestione è dotata di quattro pulsanti: Modifica, scheda Siti Web, Aggiorna e Indietro. La vista di gestione è rappresentata dal file manage.html nel pacchetto precedente. Nell’HTML, potete utilizzare i seguenti segnaposto, che vengono sostituiti dal portlet con i rispettivi contenuti al momento del rendering:
Stringa Segnaposto | Descrizione |
---|---|
Il segnaposto viene sostituito dal pulsante Modifica, che apre una nuova finestra con la pagina corrente in modalità AEM modifica. | |
Segnaposto, sostituito da un pulsante che apre la scheda Siti Web di AEM WCM. | |
Aggiorna la visualizzazione corrente. | |
Consente di ripristinare la visualizzazione di pubblicazione del portlet. |
I pulsanti, a prescindere dalla visualizzazione, utilizzano lo stesso HTML comune, definito in button.html.
Nell’HTML, potete utilizzare i seguenti segnaposto, che vengono sostituiti dal portlet con i rispettivi contenuti al momento del rendering:
Stringa Segnaposto | Descrizione |
---|---|
Nome del pulsante, ad esempio, autore, back, refresh e così via. | |
ID CSS del pulsante. | |
URL della destinazione del pulsante. | |
Etichetta del pulsante. | |
Funzione Javascript onclick (contiene {url}). |
Esempio di file button.html:
<div class="cqp_button">
<a href="#" onclick="{onclick}">
<img src="/wps/PA_CQ5_Portlet/cqbridge/static/{id}.gif" alt="{text}"
title="{text}"/>
</a>
</div>
Per installare un layout personalizzato, accedete alla sezione della console Web OSGI Bundles del portlet e caricate il bundle.
Per caricare o creare pacchetti per l’installazione, consulta Gestione pacchetti nella documentazione AEM per istruzioni dettagliate.
Tutti i collegamenti vengono riscritti per funzionare nel contesto del portale. Per impostazione predefinita vengono utilizzati i collegamenti con i parametri di rendering. È possibile configurare la funzione di riscrittura HTML di Director Portal per l'utilizzo dei collegamenti delle azioni.
Potete anche definire parametri di richiesta aggiuntivi per i quali eseguire una query per visualizzare il percorso del contenuto. Questo è utile, ad esempio, se esiste un collegamento dall'esterno a un contenuto specifico.
Inoltre, è possibile configurare la funzione di riscrittura HTML per l'Director Portal con un elenco di espressioni regolari definite, escludendo la riscrittura dei collegamenti. Se, ad esempio, si dispone di collegamenti relativi a sistemi esterni, è necessario aggiungerli a questo elenco di esclusione.
Il portlet del contenuto AEM dispone di una funzione di localizzazione integrata che garantisce che il contenuto AEM sia nella lingua corretta.
Ciò avviene in due passaggi:
/content/geometrixx/en/company.html
e, in base alla configurazione, riscrive la en con le impostazioni internazionali effettive dell'utente.Il gestore impostazioni internazionali Director del portale può essere configurato con i percorsi per la verifica delle informazioni sulle impostazioni internazionali, in genere include tutto ciò che si trova sotto /content
e con la posizione delle informazioni sulle impostazioni internazionali nel percorso. Per impostazione predefinita, il gestore di impostazioni internazionali segue la ridefinizione della strutturazione di siti in più lingue all'interno di AEM.
Se il sito non dispone di regole rigorose per la gestione delle informazioni sulle impostazioni internazionali all'interno del percorso, è possibile sostituire il gestore di impostazioni internazionali con la propria implementazione.
I servizi OSGi opzionali possono essere implementati per personalizzare diverse parti del portlet. Ogni servizio corrisponde a un'interfaccia Java. Questa interfaccia può essere implementata e distribuita tramite un bundle nella portlet.
RequestTracker | Il tracciatore delle richieste riceve una notifica ogni volta che il contenuto viene visualizzato dal portlet. Questo consente di tenere traccia delle chiamate del portlet. |
InvocationContextListener | Listener che viene richiamato all'inizio e alla fine di ogni richiesta al portlet. Il listener può essere utilizzato per modificare o aggiungere informazioni per la richiesta corrente. |
ErrorHandler | Gestore di errori personalizzato per gli errori durante la fase di rendering. |
HttpProcessor | Questo servizio può essere utilizzato per aggiungere informazioni a ogni chiamata http a AEM. |
PortletAction | Aggiungi una propria azione al portlet: questa azione può essere invocata tramite un collegamento di azione portlet. |
PortletDecoratorService | Questo servizio può essere utilizzato per decorare il contenuto del portlet. |
ResourceProvider | Aggiungete il vostro provider di risorse per distribuire alcune risorse tramite un collegamento di risorse portlet al client. |
TextMapper | Consente di pubblicare i file HTML, CSS e Javascript di elaborazione. |
ToolbarButton | Aggiungere un pulsante personalizzato alla barra degli strumenti. |
UrlMapper | Aggiungete un servizio per applicare una mappatura URL personalizzata o per riscrivere. |
UserInfoProvider | Aggiungete le vostre informazioni sull'utente. Questo servizio può essere utilizzato per ottenere informazioni dal portale al portlet. |
I seguenti servizi hanno un'implementazione predefinita nel portlet del contenuto (con un'interfaccia Java corrispondente). Per personalizzare, è necessario distribuire nell’applicazione portlet un bundle contenente la nuova implementazione del servizio.
Durante l'implementazione di tale servizio, assicurarsi di impostare la proprietà service.ranking del servizio su un valore positivo. L'implementazione predefinita utilizza la classifica 0 e il portlet utilizza il servizio con la classifica più alta.
Nome | Descrizione | Comportamento predefinito |
---|---|---|
Autenticatore | Fornisce le informazioni di autenticazione da AEM | Utilizza un utente tecnico configurabile sia per l’authoring che per la pubblicazione. Oppure è possibile utilizzare SSO. |
HTMLRewriter | Riscrive collegamenti, immagini e così via. | Riscrive AEM collegamenti ai collegamenti del portale, che possono essere estesi tramite UrlMapper e TextMapper |
HttpClientService | Gestisce tutte le connessioni HTTP | Implementazione standard |
LocaleHandler | Gestisce le informazioni sulle impostazioni internazionali | Riscrive un collegamento al contenuto rispetto alle impostazioni internazionali. |
LocaleDetector | Rileva le impostazioni internazionali dell'utente. | Utilizza le impostazioni internazionali fornite dal portale. |
PrivilegeManager | Controlla i diritti utente | Controlla l'accesso all'istanza di creazione se l'utente può modificare i contenuti |
ToolbarRenderer | Rendering della barra degli strumenti | Aggiunge una funzionalità della barra degli strumenti |
L'API portlet (JSR-286) specifica gli eventi portlet. Il portlet dei contenuti AEM è dotato di un ponte integrato, che distribuisce eventi portlet per il portlet AEM come eventi OSGi. In questo modo è possibile gestire gli eventi portlet.
Se si desidera gestire eventi specifici, dichiararli come eventi riceventi nel descrittore di distribuzione (o configurarli tramite il server del portale) e implementare un servizio OSGi che dichiara l'interfaccia EventHandler (vedere la specifica OSGi EventAdmin).
Ogni volta che si verifica un evento portlet, viene inviato un evento OSGi specifico che richiama il gestore. Il gestore riceve tutte le informazioni contestuali e può aggiornare di conseguenza lo stato del portlet oppure inviare nuovi eventi. In sostanza, all'interno del metodo handle è possibile utilizzare tutte le funzionalità della fase evento portlet.
Utilizzare il componente Portlet per aggiungere le finestre portlet alle pagine AEM. Le librerie condivise installate nel server delle applicazioni consentono al componente Portlet di rilevare le applicazioni portlet distribuite.
Per utilizzare AEM come portale, effettuare le seguenti operazioni:
Potete utilizzare il componente portlet solo quando AEM viene distribuito come applicazione Web. (Vedere Installazione di AEM con un server applicazioni.)
Il AEM file JAR Quickstart contiene i file dei componenti portlet. Per ottenere i file (cq-portlet-components.zip), potete eseguire il Quickstart o estrarre il contenuto.
Eseguite o estraete il contenuto del file JAR di Quickstart, quindi individuate il file cq-portlet-components.zip di conseguenza:
Aprite Package Manager dell’istanza di creazione CQ5 distribuita nel server dell’applicazione. (https://appserverhost:porta/cq5author/crx/packmgr)
Utilizzate Package Manager per Caricare e installare il pacchetto cq-portlets-components.zip.
Il pacchetto installa cq-portlet-director-sharedlibs-x.x.x.jar nella cartella /libs/Portal/director nella directory archivio.
Copiare cq-portlet-director-sharedlibs-x.x.x.jar sul disco rigido. Utilizzare qualsiasi mezzo per ottenere il file, ad esempio FileVault o un client WebDAV.
Spostate il file cq-portlet-director-sharedlibs.x.x.x.jar nella cartella della libreria condivisa del server applicazione in modo che le classi siano disponibili per le applicazioni portlet distribuite.
Aggiungete il componente portlet al sistema paragrafo in modo che sia disponibile per gli autori.
Nella barra laterale fate clic sull’icona del righello per passare alla modalità Progettazione.
Accanto all'intestazione Design of par
sopra il primo paragrafo, fare clic su Modifica.
Nella categoria di componenti Generale, selezionare la casella di controllo accanto al componente Portlet e fare clic su OK.
Distribuite i portlet nel contenitore Web del server applicazione in modo che siano disponibili per il componente Portal. Prima di distribuire l'applicazione portlet, è necessario configurare l'applicazione in modo che carichi il servlet contenitore del portale AEM. Questa configurazione consente al componente Portlet di accedere ai portlet.
Estrarre il contenuto del file WAR dell'applicazione portlet.
Suggerimento: il comando jar xf nameofapp.war estrae i file.
Aprite il file web.xml in un editor di testo.
Aggiungi la seguente configurazione servlet all'interno dell'elemento web-app:
<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>
Salvate il file web.xml e ricompilate il file WAR.
Suggerimento: il jar cvf nameofapp.war *
comando aggiunge il contenuto della directory corrente al file nameofapp.war.
Implementare l'applicazione portlet nel server dell'applicazione. Per ulteriori informazioni, consultate la documentazione del server applicazione.
Utilizzate il componente Portal per aggiungere una finestra portlet alla pagina Web. Utilizzate le proprietà del componente per specificare il portlet da visualizzare.
Sulla pagina Web, trascinare il componente Portlet dal gruppo Generale nella barra laterale alla pagina.
Dopo aver trascinato il componente sulla pagina, ricaricate la pagina per assicurarvi che funzioni correttamente.
Fare doppio clic sul componente per aprire le proprietà Portlet.
Nel menu a discesa Portlet Entity, selezionare il portlet dall'elenco.
Selezionare o deselezionare la casella di controllo Nascondi barra del titolo a seconda che si desideri visualizzare o meno la barra del titolo del portlet.
Nel campo Finestra portlet, immettete un ID univoco per la finestra portlet, se lo desiderate.
Se intendete utilizzare la stessa portlet più volte sulla stessa pagina, assegnate a ciascuna portlet un ID finestra diverso.
Fai clic su OK. Il portlet viene visualizzato sulla pagina AEM.
Per accedere al contenuto fornito da AEM WCM, il server portale deve essere dotato del Portlet Director AEM Portal. A tal fine, è possibile installare, configurare e aggiungere il portlet alla pagina del portale utilizzando i passaggi forniti in questa sezione.
Per impostazione predefinita, il portlet si collega all’istanza di pubblicazione localhost:4503 e all’istanza di creazione in localhost:4502. Questi valori possono essere modificati durante la distribuzione del portlet. Il direttore del portale è disponibile come contenuto nella directory archivio in /libs/portale/directory. Sarà necessario scaricare il file di guerra dell'applicazione prima di utilizzarlo.
Utilizzando WebDAV o CRXDE Lite, andate a /libs/Portal/director.
Scarica cq-portlet-webapp.war.
Queste procedure utilizzano il portale WebSfera come esempio, anche se il più possibile generiche; le procedure variano per altri portali Web. Anche se i passaggi sono sostanzialmente identici per tutti i portali Web, è necessario riadattare i passaggi per un particolare portale Web.
Per installare il portlet:
Accedete al portale con privilegi di amministratore.
Passare alla sezione Gestione portlet del portale Web.
Fate clic su Installa e individuate l'applicazione portlet AEM (cq-portlet-webapp.war) che avete scaricato e immettete altre informazioni importanti sul portlet.
Per altre informazioni essenziali sul portlet, potete accettare le impostazioni predefinite o modificare i valori. Se accettate i valori predefiniti, il portlet è disponibile all’indirizzo https://<wps-host>:<port>/wps/PA_CQ5_Portlet. La console di amministrazione OSGi fornita dal portlet è disponibile all'indirizzo https://<wps-host>:<port>/wps/ PA_CQ5_Portlet/cqbridge/system/console (il nome utente/password predefinito è admin/admin).
Verificare che l'applicazione portlet venga avviata automaticamente selezionando tale opzione o casella di controllo e salvare le modifiche. Viene visualizzato un messaggio di errore relativo all'installazione.
Dopo aver installato il portlet, è necessario configurarlo in modo che conosca gli URL delle istanze AEM sottostanti (autore e pubblicazione). Potete anche configurare altre opzioni.
Per configurare il portlet:
Nella finestra di amministrazione del portale del server app, andate alla gestione del portlet, in cui sono elencati tutti i portlet e selezionate il portlet Director del AEM Portal.
Configura il portlet, a seconda delle necessità. Ad esempio, potrebbe essere necessario modificare l’URL per le istanze di creazione e pubblicazione e l’URL per il percorso iniziale. Le configurazioni predefinite sono descritte in Preferenze portlet.
Se il portlet è configurato per connettersi a AEM istanze di creazione e pubblicazione eseguite su un percorso di contesto diverso da /, è necessario abilitare la forza CQUrlInfo nella configurazione Html Library Manager di tali istanze (ad esempio tramite Felix Webconsole) oppure la modifica non funzionerà e la finestra di dialogo delle preferenze non verrà visualizzata.
Salva le modifiche alla configurazione nel server app.
Passate alla console di amministrazione OSGI per il portlet. Il percorso predefinito è https://<wps-host>:<port>/wps/PA_CQ5_Portlet/cqbridge/system/console/configMgr
. Il nome utente/password predefinito è admin/admin.
Selezionate la configurazione Day Portal Director CQ Server Configuration e modificate i seguenti valori:
Fai clic su Salva. È ora possibile aggiungere il portlet alle pagine del portale e utilizzare il portale.
Quando il contenuto viene richiesto AEM, il portlet utilizza la modalità di visualizzazione corrente (pubblicazione o creazione) e il percorso corrente per assemblare un URL completo. Con i valori predefiniti, il primo URL è http://localhost:4503/content/geometrixx/en.portlet.html
. Il valore di htmlSelector
viene aggiunto automaticamente all'URL prima dell'estensione.
Se il portlet passa alla modalità help e l'opzione appendHelpViewModeAsSelector
è selezionata, viene aggiunto anche il selettore help
, ad esempio http://localhost:4503/content/geometrixx/en.portlet.html.help
. Se la finestra del portlet è ingrandita e l'opzione appendMaxWindowStateAsSelector
è selezionata, viene aggiunto anche il selettore, ad esempio http://localhost:4503/content/geometrixx/en.portlet.max.help
.
I selettori possono essere valutati in AEM e un altro modello può essere utilizzato per diversi selettori.
Solitamente il percorso iniziale punta direttamente al contenuto in AEM. Tuttavia, se desiderate mantenere i percorsi iniziali in AEM anziché nelle preferenze del portlet, potete indirizzare il percorso iniziale a una mappa di contenuto in AEM, come /var/portlets
. In questo caso, uno script in esecuzione in AEM può utilizzare le informazioni inviate dal portlet per decidere quale URL è l'URL iniziale. Dovrebbe eseguire un reindirizzamento all'URL corretto.
Per aggiungere il portlet alla pagina del portale:
Accertatevi di essere nella finestra di amministrazione del server app e andate al percorso in cui gestite le pagine. Ad esempio, in WebSphere 6.1 fare clic su Gestisci pagine.
Selezionate il nome del portlet, quindi selezionate una pagina esistente o create una nuova pagina.
Modificate il layout della pagina.
Selezionate il portlet e aggiungetelo a un contenitore.
Salvare le modifiche.
Per accedere alla pagina aggiunta alla portlet: