Portlets y portlets de AEM

En este documento se describe lo siguiente:

  • Arquitectura de AEM Portal
  • Administración y configuración de AEM como portal
  • Uso de AEM como portal
  • Instalación, configuración y visualización AEM contenido en un portlet (por ejemplo, un servidor web)

Arquitectura de AEM Portal

AEM arquitectura de portal incluye definiciones de portales y portlets.

¿Qué es un portal?

Un portal es una aplicación web que proporciona personalización, inicio de sesión único, integración de contenido de diferentes fuentes y aloja la capa de presentación de los sistemas de información.

Puede ejecutar portlets compatibles con JSR 286 en AEM. El componente portlet permite incrustar un portlet en la página. Consulte Administración del portlet de contenido AEM.

¿Qué es un portlet?

Los portlets son componentes Web implementados dentro de un contenedor que generan contenido dinámico. La interfaz portlet se empaqueta e implementa como un archivo .war dentro de un contenedor portlet. Si está ejecutando AEM como portal, necesita el archivo .war del portlet para ejecutar el portlet.

Para configurar AEM contenido para que aparezca en un portal, consulte Instalación, configuración y uso de AEM en un portlet.

AEM Portal Director

PRECAUCIÓN

El AEM Portal Director está obsoleto a partir de AEM 6.4. Consulte Funciones obsoletas y eliminadas.

Administración del Portlet de Contenido AEM

El portlet de contenido AEM le permite mostrar AEM contenido en un portal. El portlet está disponible en /crx-quickstart/opt/portal y se puede personalizar de varias maneras. Por ejemplo, puede personalizar el control SSO/Authentication implementando su propio servicio de autenticación para generar la información de autenticación necesaria para AEM a fin de sobrescribir el comportamiento predeterminado. Los complementos utilizan una API definida que le permite agregar su propia funcionalidad creando el complemento con la API. El complemento se puede implementar en el portlet en ejecución. Para funcionar correctamente, necesita una configuración de la instancia de creación y publicación de AEM junto con la ruta de contenido para mostrarla durante el inicio.

Algunas de las configuraciones se pueden cambiar a través de las preferencias de portlet y otras a través de las configuraciones de servicio OSGi. Puede cambiar estas configuraciones mediante archivos config o la consola web OSGi.

Preferencias del portlet

Las preferencias del portlet se pueden configurar en el momento de la implementación en el servidor del portal o editando el archivo WEB-INF/portlet.xml antes de implementar la aplicación web del portlet. El archivo portlet.xml aparece de forma predeterminada de la siguiente manera:

<?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>

El portlet se puede configurar con las siguientes preferencias:

startPath

Esta es la ruta de inicio del portlet: define el contenido que se muestra inicialmente.

Importante: Si el portlet está configurado para conectarse a AEM instancias de creación y publicación que se ejecutan en una ruta de contexto distinta a/, debe activar la configuración de forzar CQUrlInfoin del Administrador de biblioteca Html de estas instancias de AEM (por ejemplo, a través de Felix Webconsole) o la edición no funcionará y el cuadro de diálogo de preferencias no aparecerá.

htmlSelector Selector que se anexa a cada dirección URL. De forma predeterminada, es portlet, por lo que todas las solicitudes para páginas html utilizan direcciones URL que finalizan en .portlet.html. Esto permite el uso de secuencias de comandos personalizadas dentro de AEM para el procesamiento de portlets.
addCssToPortalHeader

De forma predeterminada, los archivos css incluidos en la página HTML de AEM se incluyen en el portlet. Al desactivar esta opción, se excluyen los archivos css predeterminados.

Si esta opción está habilitada, los archivos CSS se agregan al encabezado de la página html o se incrustan en la página html, según el comportamiento del portal.

includeToolbar De forma predeterminada, se procesa una barra de herramientas dentro del portlet de contenido para la funcionalidad de administración. Al desactivar esta opción, no se procesa ninguna barra de herramientas.
urlParameterNames

Lista de nombres de parámetros de URL alternativos que podrían contener la nueva dirección URL de contenido para mostrar en el portlet. La lista se procesa de arriba abajo, se utiliza el primer parámetro que contiene un valor. Si no se encuentra ninguna URL, se utiliza el parámetro de URL predeterminado. La dirección URL proporcionada se utiliza, tal como está, sin ninguna modificación adicional.

Esta configuración es por portlet implementado; también es para configurar de forma global algunos parámetros de URL en la configuración OSGi para el "Puente de portlet de Director Day Portal".

priorityDialog Ruta al cuadro de diálogo de preferencias en AEM: si se deja vacío, se utilizará el cuadro de diálogo de preferencias integrado. El valor predeterminado es /libs/portal/content/prefs.html.
initialRedirect De forma predeterminada, el portlet realiza una redirección de javascript de toda la página del portal en la primera invocación. Esto es para admitir el escenario de arrastrar y soltar de los servidores de portal modernos. En la producción, esta redirección raramente es necesaria y por lo tanto puede desactivarse si esta preferencia se establece en false.

Consola Web OSGi

Suponiendo que el servidor de portal se ejecuta en host localhost, puerto 8080 y que la aplicación web AEM portlet está montada en el contexto de la aplicación web cqportlet, la dirección URL para la consola web es http://localhost:8080/cqportlet/cqbridge/system/console. El usuario y la contraseña predeterminados son admin.

Abra la ficha Configuraciones y seleccione Configuración del servidor CQ de Directorio de portales. Aquí puede especificar la URL base del autor y la instancia de publicación. Este procedimiento se describe en Configuración del portlet.

NOTA

La consola web OSGi solo está pensada para cambiar las configuraciones durante el desarrollo (o la prueba). Asegúrese de bloquear las solicitudes a la consola para los sistemas de producción.

Proporcionar configuraciones

Para admitir implementaciones automatizadas y provisioning de configuración, el portlet de contenido de AEM cuenta con compatibilidad de configuración integrada que intenta leer configuraciones de la ruta de clases proporcionada a la aplicación portlet.

Al iniciar, la propiedad del sistema com.day.cq.portet.config se lee para detectar el entorno actual. Normalmente, el valor de esta propiedad es algo así como dev, prod, test y así sucesivamente. Si no se establece ningún entorno, no se lee ninguna configuración.

Si se establece un entorno, se busca un archivo de configuración en la ruta de clases en* *com/day/cq/portlet/{env}.config donde env se reemplaza por el valor real del entorno. Este archivo debe lista todos los archivos de configuración para este entorno. Estos archivos se buscan en relación con la ubicación del archivo de configuración. Por ejemplo, si el archivo contiene una línea my.service.xml,, este archivo se lee desde la ruta de clases en com/day/cq/portlet/my.service.config. El nombre del archivo consta de la ID de persistencia del servicio, seguida de .config. En el ejemplo anterior, el ID de persistencia es my.service. El formato del archivo de configuración es el formato utilizado por el instalador OSGi de Apache Sling.

Esto significa que, para cada entorno, se debe agregar un archivo de configuración correspondiente. Una configuración que debe aplicarse a todos los entornos debe introducirse en todos estos archivos; si es sólo para un solo entorno, se introduce en ese archivo. Este mecanismo garantiza el control total sobre la configuración que se lee en cada entorno.

Es posible utilizar una propiedad de sistema diferente para detectar el entorno. Especifique la propiedad del sistema com.day.cq.portet.configproperty que contiene el nombre de la propiedad del sistema que se va a utilizar en lugar de com.day.cq.portet.config.

Invalidación de almacenamiento en caché

El portlet, en su configuración predeterminada, almacena en caché las respuestas que recibe de AEM WCM en una caché específica del usuario. Las memorias caché deben invalidarse cuando se produzcan cambios en el contenido de la instancia de publicación. Para ello, en AEM WCM se debe configurar un agente de replicación en la instancia de creación. La caché también se puede vaciar manualmente. En esta sección se describen ambos procedimientos.

El portlet puede configurarse con su propia caché, de modo que el contenido del portlet se muestre sin necesidad de acceder a AEM. El portal está disponible como contenido en /libs/portal/director. Para acceder al contenido, inicio una instancia de AEM y descargue, mediante CRXDE Lite o Webdav, el archivo desde esa ubicación.

Puede implementar este paquete en tiempo de ejecución o agregarlo a la aplicación web portlet en WEB-INF/lib/resources/bundles antes de la implementación.

Una vez implementada la caché, el portlet almacena en caché el contenido de la instancia de publicación. La caché del portlet se puede invalidar con un vaciado del despachante de AEM. Para configurar el portlet para que utilice su propia caché:

  1. Configure un agente de replicación en el autor que destinatario el servidor del portal.

  2. Suponiendo que el servidor de portal se ejecuta en el host localhost, puerto 8080 y que la aplicación web del portlet AEM está montada en el contexto cqportlet, la dirección URL para vaciar la caché es http://localhost:8080/cqportlet/cqbridge/cqpcache?Path=$(path). Utilice GET como método.

    Nota: En lugar de utilizar un parámetro de solicitud, puede enviar un encabezado http denominado Ruta.

Vaciar la memoria caché mediante el agente de replicación

Al igual que la invalidación normal del despachante, se puede configurar un agente de replicación para el destinatario de la caché del portlet AEM del portal. Después de configurar el agente de replicación, cada activación de página normal descarga la memoria caché del portal.

Si opera varios nodos de portal que ejecutan el portlet AEM, debe crear un agente para cada nodo como se describe en este procedimiento.

Para configurar un agente de replicación para el portal:

  1. Inicie sesión en la instancia de creación.

  2. En la ficha Sitios web, haga clic en la ficha Herramientas.

  3. Haga clic en Nueva página… en los agentes de replicación Nuevo….

    screen_shot_2012-02-15at40647pm

  4. En Plantilla, seleccione Agente de replicación e introduzca un nombre para el agente. Haga clic en Crear.

    screen_shot_2012-02-15at40817pm

  5. Haga clic con el doble en el agente de replicación que acaba de crear. Se muestra como no válido porque aún no se ha configurado.

    screen_shot_2012-02-15at41001pm

  6. Haga clic en Editar.

  7. En la ficha Configuración, active la casilla de verificación Habilitado, seleccione Destinatario vaciado como tipo de serialización e introduzca un tiempo de espera de reintento (por ejemplo, 60000).

    screen_shot_2012-02-15at42101pm

  8. Haga clic en la ficha Transporte.

  9. En el campo URI, introduzca el URI de vaciado (URL) del portlet. El URI tiene el siguiente formato:

    https://<wps-host>:<port>/<wps-context>/<cq5-portlet-context>/cqbridge/cqpcache
    

    screen_shot_2012-02-15at42322pm

  10. Haga clic en la ficha Extended.

    screen_shot_2012-02-15at42515pm

  11. En el campo Método HTTP, escriba GET.

  12. En el campo Encabezados HTTP, haga clic en + para agregar una nueva entrada y escriba Ruta: {path}.

  13. Si es necesario, haga clic en la ficha Proxy e introduzca la información del proxy en el agente.

  14. Haga clic en Aceptar para guardar los cambios.

  15. Para probar la conexión, haga clic en el vínculo Probar conexión. Aparece un mensaje de registro que indica si la prueba de replicación se realizó correctamente. Por ejemplo:

    screen_shot_2012-02-15at42639pm

Descarga manual de la caché de portlet

Puede vaciar manualmente la caché del portlet accediendo a la misma dirección URL configurada para el agente de replicación. Consulte Vaciado de la caché para ver la forma de la dirección URL. Además, la dirección URL debe ampliarse con un parámetro de URL Path=<ruta> para indicar qué vaciar.

Por ejemplo:

https://10.0.20.99:10040/wps/PA_CQ5_Portlet/cqbridge/cqpcache?Path=* borra la caché completa. https://10.0.20.99:10040/wps/PA_CQ5_Portlet/cqbridge/cqpcache?Path=/content/mypage/xyz vacia /content/mypage/xyz de la caché.

Seguridad del portal

El portal es el mecanismo de autenticación que conduce. Puede iniciar sesión en AEM con un usuario técnico, el usuario del portal, un grupo, etc. El portlet no tiene acceso a la contraseña para el usuario en el portal, por lo que si el portlet no conoce todas las credenciales para iniciar sesión correctamente en un usuario, se debe utilizar una solución SSO. En este caso, el portlet AEM reenvía toda la información requerida a AEM, lo que a su vez reenvía esta información al repositorio AEM subyacente. Este comportamiento es conectable y se puede personalizar.

Autenticación en publicación

En esta sección se describen los modos de autenticación disponibles que el portlet puede utilizar para comunicarse con las instancias de WCM AEM subyacentes.

De forma predeterminada, no se envía información de usuario a la instancia de publicación de AEM; el contenido siempre se muestra como usuario anónimo. Si la información específica del usuario debe enviarse desde AEM o si se requiere la autenticación del usuario para la publicación, esto debe activarse.

Acceso a la configuración de autenticación del portlet

Las opciones de configuración de autenticación que utiliza el portlet en AEM instancias de WCM están disponibles en la consola web (configuración OSGi).

NOTA

Al trabajar con AEM hay varios métodos para administrar la configuración de los servicios OSGi (nodos de consola o repositorio).

Consulte Configuración de OSGi para obtener más información.

Para acceder a la configuración de autenticación del portlet:

  1. Acceda a la consola web en la siguiente dirección URL:

    http://localhost:8080/cqportlet/cqbridge/system/console

    Por ejemplo, en su configuración predeterminada:

    https://wps-host:10040/wps/PA_CQ5_Portlet/cqbridge/system/console

  2. Inicie sesión en la consola web. Las credenciales predeterminadas son admin/admin.

  3. En la consola, seleccione Configuración.

  4. En el menú Configuración, seleccione un servicio concreto para configurar. Los servicios son proporcionados por el portlet en el marco de OSGi.

    Nombre de servicio Descripción
    Autenticador de Director de Day Portal Configure qué modo de autenticación se utiliza para AEM instancias de WCM. Según el modo seleccionado, se puede especificar un usuario técnico o el nombre de la cookie SSO. Además, se puede habilitar la autenticación para AEM instancias de publicación de WCM.
    Caché de archivos Director de Day Portal Configure los parámetros de cómo el portlet almacena en caché las respuestas que recibe de AEM instancias de WCM.
    Servicio de cliente HTTP de Director de Day Portal Configure cómo se conecta el portlet mediante HTTP con las instancias de WCM subyacentes AEM. Por ejemplo, puede especificar un servidor proxy.
    Controlador de configuración regional de Director de Day Portal Configure qué configuraciones regionales admite el portlet. Las solicitudes para AEM instancias de WCM se basan en la configuración regional del usuario; por ejemplo, el lenguaje de usuario *German *solicitaría /content/geometrixx/de/
    Administrador de privilegios de Director de Day Portal Configure si el portlet debe probar la ficha Sitios web en función del usuario que ha iniciado sesión.
    Procesador de la barra de herramientas de Director de Day Portal Personalice la representación de la barra de herramientas del portlet.
  5. Además, puede configurar la consola web y el servicio de registro. Por ejemplo, puede cambiar las credenciales de administración de la consola Web haciendo clic en el vínculo de la Consola de administración Apache Felix OSGi.

Modo de usuario técnico

En el modo predeterminado, todas las solicitudes emitidas por el portlet para la instancia de autor de WCM AEM se autentican con el mismo usuario técnico, independientemente del usuario del portal actual. El modo de usuario técnico está activado de forma predeterminada. Active o desactive este modo en la pantalla de configuración correspondiente de la consola de administración OSGi:

El usuario técnico especificado debe existir en la instancia de autor de WCM AEM y en la instancia de publicación si Autenticar en publicación está habilitado. Asegúrese de otorgar al usuario privilegios de acceso suficientes para el trabajo de creación.

SSO

El portlet admite SSO con AEM listas para usar. El servicio de autentificador puede configurarse para utilizar SSO y transmitir el usuario del portal actual con el formato Basic como una cookie denominada cqpsso a AEM. AEM debe configurarse para utilizar el controlador de autenticación SSO para la ruta /. El nombre de la cookie también debe configurarse aquí.

El repositorio crx-quickstart/repository/repository.xml para AEM debe configurarse en consecuencia:

<LoginModule class="com.day.crx.security.authentication.CRXLoginModule">
  ...
  <param name="trust_credentials_attribute" value="TrustedInfo"/>
  <param name="anonymous_principal" value="anonymous"/>
</LoginModule>

Modo de autenticación SSO

El portlet puede autenticarse para AEM WCM mediante el esquema de inicio de sesión único (SSO). En este modo, el usuario que ha iniciado sesión en el portal se reenvía a AEM WCM en forma de una cookie SSO. Si se utiliza el modo SSO, todos los usuarios del portal con acceso al portlet AEM deben ser conocidos por las instancias de WCM AEM subyacentes, generalmente en forma de AEM WCM conectado a LDAP o por haber creado manualmente los usuarios de antemano. Además, antes de habilitar SSO en el portlet, la instancia de autor de WCM subyacente (y la instancia de publicación, si Autenticar en publicación está habilitada) debe configurarse para aceptar solicitudes basadas en SSO.

Para configurar el portlet para que utilice el modo de autenticación SSO, complete los siguientes pasos (descritos en detalle en las siguientes secciones):

  • Habilite AEM repositorio de WCM para aceptar credenciales de confianza.
  • Habilite la autenticación SSO en el WCM AEM.
  • Habilite la autenticación SSO en el portlet AEM.

Habilitar AEM repositorio de WCM para aceptar credenciales de confianza

Antes de habilitar SSO para AEM WCM, el repositorio subyacente debe configurarse para aceptar las credenciales de confianza proporcionadas por AEM WCM. Para ello, configure AEM repositorio.xml.

  1. En el sistema de archivos donde está instalado AEM WCM, abra el siguiente archivo:

    //crx-quickstart/repository/repository.xml

  2. En el archivo XML, busque la entrada para LoginModule y agregue el atributo trust_dentials_attribute a su configuración:

    <LoginModule class="com.day.crx.security.authentication.CRXLoginModule">
      ...
      <param name="trust_credentials_attribute" value="TrustedInfo"/>
      <param name="anonymous_principal" value="anonymous"/>
    </LoginModule>
    
  3. Reinicie AEM WCM para que los cambios surtan efecto.

Habilitación de la autenticación SSO en el AEM WCM

Para habilitar SSO en AEM WCM, acceda a la entrada de configuración relevante en la consola de administración web Apache Felix Web Management Console (OSGi) de AEM WCM:

  1. Acceda a la consola a través de su URI en https://<AEM-host>:<puerto>/system/console.

  2. En el menú Configuración, seleccione Controlador de autenticación SSO. En este ejemplo, el controlador SSO acepta solicitudes SSO para todas las rutas basadas en la cookie proporcionada por el portlet AEM. Su configuración puede variar.

    Ruta / Habilita el controlador SSO para todas las solicitudes
    Nombres de cookies cqpsso Nombre de la cookie proporcionada por el portlet según la configuración de la consola OSGi del portlet.
  3. Haga clic en Guardar para habilitar SSO. SSO es ahora el esquema de autenticación principal.

Para cada solicitud que recibe AEM WCM, primero se intenta la autenticación basada en SSO. Tras un error, se realiza una alternativa al esquema de autenticación básico habitual. Como tal, las conexiones normales a AEM WCM sin SSO siguen siendo posibles.

Habilitar la autenticación SSO en un portlet AEM

Para que la instancia de WCM AEM subyacente acepte solicitudes SSO, el modo de autenticación del portlet debe cambiarse de Technical a SSO.

Para habilitar la autenticación SSO en un portlet AEM:

  1. Acceda a la consola a través de su URI en https://<aem-host>:<puerto>/system/console.

  2. En el menú Configuración, seleccione Autenticador de Director de Day Portal en la lista de configuraciones disponibles.

  3. En Modo, seleccione SSO. Deje los demás parámetros con sus valores predeterminados.

    chlimage_1-11

  4. Haga clic en Guardar para habilitar SSO para el portlet.

    Para realizar pruebas, acceda al portlet con el usuario administrativo del portal, después de crear el mismo usuario en AEM WCM con privilegios de administrador.

Después de realizar este procedimiento, las solicitudes se autentican con SSO. Un fragmento típico de la comunicación HTTP revela la presencia de los siguientes encabezados específicos de SSO y Portlet:

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 -> [ ]

Habilitando la autenticación de PIN

Si no utiliza las funciones de edición en línea predeterminadas del portlet de contenido AEM, pero desea que la creación y administración del portlet se realice directamente fuera del portal en la instancia de creación de AEM, debe habilitar la autenticación PIN. También debe cambiar la configuración de los botones de administración.

Para abrir la página de administración del sitio web o editar una página desde el portlet, el portlet de contenido de AEM utiliza la nueva autenticación de pines. De forma predeterminada, la autenticación de pin está deshabilitada, por lo que se deben realizar los siguientes cambios de configuración en AEM:

  1. Habilite la autenticación de confianza en AEM agregando la información de confianza en el archivo repositorio.xml:

    <LoginModule class="com.day.crx.security.authentication.CRXLoginModule">
      ...
      <param name="trust_credentials_attribute" value="TrustedInfo"/>
    </LoginModule>
    
  2. En la consola de configuración OSGi, ubicada de forma predeterminada en http://localhost:4502/system/console/configMgr, seleccione Controlador de autenticación CQ PIN en el menú desplegable.

  3. Edite el parámetro Ruta raíz de URL para que solo contenga el valor único /.

Privilegios

Algunas funciones del portlet están protegidas por privilegios. El usuario actual necesita tener este privilegio para poder acceder a esta función. Hay los siguientes privilegios predefinidos:

  • "toolbar" : Este es el privilegio general de ver/usar la barra de herramientas en el portlet.
  • "prefs" : Si el usuario tiene este privilegio, puede ver o cambiar las preferencias del portlet.
  • "cq-author:edit" : Con este privilegio, el usuario puede invocar la vista de edición del contenido.
  • "cq-author:previsualización" : Con este privilegio, el usuario puede ver la previsualización.
  • "cq-author:siteadmin" : Con esta privacidad, el usuario puede abrir el siteadmin dentro de AEM.

El mejor método para administrar los privilegios es utilizar las funciones de portal y asignar funciones a estos privilegios. Esto se puede realizar mediante una configuración OSGi. El "Administrador de privilegios de Director de Day Portal" se puede configurar con un conjunto de funciones para cada privilegio. Si el usuario tiene una de las funciones, tiene el privilegio correspondiente.

Además, es posible definir este rol en base al acceso en una base de instancias de portlet por portlet. El cuadro de diálogo de preferencias del portlet contiene un campo de entrada para cada uno de los privilegios anteriores. Para cada privilegio se puede configurar una lista separada por comas de las funciones de portlet. Si se configura un valor, se anula la configuración global del servicio "Day Portal Director Privilege Manager" y es posible que sea necesario agregar las mismas funciones de esta configuración global, ya que las funciones no se combinan. Si no se especifica ningún valor, se utiliza la configuración global.

Personalización de la aplicación de AEM portlet

La aplicación AEM portlet proporcionada inicio un contenedor OSGi dentro de la aplicación web como AEM. Esta arquitectura le permite aprovechar todas las ventajas de OSGi:

  • Fácil de actualizar y ampliar
  • Proporciona actualizaciones urgentes del portlet sin ninguna interacción del servidor del portal
  • Fácil de personalizar el portlet

Botones de barra de herramientas

La barra de herramientas y sus botones se pueden configurar y personalizar. Puede agregar sus propios botones a la barra de herramientas o definir qué botones se muestran en cada modo. Cada botón es un servicio OSGi configurable mediante una configuración OSGi.

La consola web OSGi lista todas las configuraciones de botón de la ficha Configuration. Para cada botón, puede definir en qué modo se muestra este botón. Esto le permite desactivar un botón eliminando todos los modos, por ejemplo.

De forma predeterminada, el portlet de contenido AEM utiliza la funcionalidad de edición en línea. Sin embargo, si prefiere cambiar a la instancia de creación de AEM para editarla, habilite el Botón de administración del sitio y el Botón de ContentFinder, pero desactive el Botón de edición. En este caso, asegúrese de configurar correctamente la autenticación PIN en AEM.

El diseño de la barra de herramientas del portlet se puede personalizar instalando un paquete a través de la consola web Felix del portlet, que contiene CSS/HTML personalizado en una ubicación predefinida.

Estructura del paquete

A continuación se muestra un ejemplo de estructura de paquetes:

$ 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 carpeta META-INF contiene el archivo MANIFEST.MF requerido por OSGi para identificarlo como un paquete. Aparece como sigue:

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

El portlet exige que las imágenes HTML/CSS se encuentren dentro de la carpeta /com/day/cq/portlet/toolbar/layout y no se pueden cambiar. En las mismas líneas, los encabezados Import-Package y Export-Package en MANIFEST.MF también deben llamarse /com/day/cq/portlet/toolbar/layout. Bundle-SymbolicName debe ser un nombre de paquete único y completo.

Puede crearlo con una herramienta como, por ejemplo, crear manualmente un archivo jar de este tipo con el encabezado correspondiente establecido como se muestra en esta sección.

Vistas de la barra de herramientas del portlet

La barra de herramientas del portlet tiene básicamente dos estados de vista. Cada vista y los botones asociados se pueden personalizar con un archivo HTML respectivo.

Publicar Vista

La vista de publicación solo tiene un botón que cambia la barra de herramientas a la vista Administrar. La vista de publicación está representada por el archivo publish.html en paquete anterior. En el HTML, puede utilizar los siguientes marcadores de posición, que son reemplazados por el portlet con el contenido correspondiente cuando se procesan:

Publicar marcadores de posición de Vista

Cadena de marcador de posición Descripción
El marcador de posición se sustituye por el botón Administrar que cambia el estado del portlet al estado de administración.

Administrar Vista

La vista de administración tiene cuatro botones: Editar, ficha Sitios web, Actualizar y Atrás. La vista de administración está representada por el archivo manage.html en el paquete anterior. En el HTML, puede utilizar los siguientes marcadores de posición, que son reemplazados por el portlet con el contenido correspondiente cuando se procesan:

Administrar marcadores de posición de Vista

Cadena de marcador de posición Descripción
El marcador de posición se reemplaza por el botón Editar, que abre una nueva ventana con la página actual en AEM modo de edición.
Marcador de posición, reemplazado por un botón que abre la ficha Sitios web de AEM WCM.
Actualiza la vista actual.
Cambia el portlet de nuevo a la vista de publicación.

Botones

Los botones, en cualquier vista que aparezcan, utilizan el mismo código HTML común, definido en button.html.

En el HTML, puede utilizar los siguientes marcadores de posición, que son reemplazados por el portlet con el contenido correspondiente cuando se procesan:

Administrar y publicar botones de Vista

Cadena de marcador de posición Descripción
Nombre del botón, por ejemplo, autor​, reverso, actualizar, etc.
ID de CSS del botón.
Dirección URL del destinatario del botón.
Etiqueta del botón.
Función Javascript onclick (contiene {url}).

Ejemplo de un archivo 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>

Instalación de un diseño personalizado

Para instalar un diseño personalizado, acceda a la sección Paquetes de la consola web OSGI del portlet y cargue el paquete.

Paquetes

Si necesita cargar o crear paquetes para la instalación, consulte el Administrador de paquetes en la documentación de AEM para obtener instrucciones detalladas.

Todos los vínculos se reescriben para que funcionen en el contexto del portal. De forma predeterminada, se utilizan vínculos con parámetros de procesamiento. El reescritor HTML de Director Portal se puede configurar para utilizar vínculos de acción en su lugar.

También puede definir parámetros de solicitud adicionales que se consultarán para que se muestre la ruta de contenido. Esto resulta útil, por ejemplo, si hay un vínculo desde el exterior a contenido específico.

Además, el Director Portal HTML Rewriter puede configurarse con una lista de expresiones regulares definidas excluidas para la reescritura de vínculos. Por ejemplo, si tiene vínculos relativos a sistemas externos, debe agregarlos a esta lista de exclusión.

Localización

El portlet de contenido AEM tiene una función de localización integrada que garantiza que el contenido de AEM esté en el idioma correcto.

Esto se realiza en dos pasos:

  1. El detector de configuración regional del directorio del portal detecta la configuración regional del usuario del portal obteniendo la configuración regional del portal. Este servicio debe configurarse con la lista de los idiomas disponibles en AEM.
  2. El controlador de configuración regional de Director Portal gestiona la localización de la solicitud actual. Toma la ruta del contenido solicitado, por ejemplo /content/geometrixx/en/company.htmly según la configuración, vuelve a escribir en con la configuración regional real del usuario.

El Controlador de configuración regional de Director Portal se puede configurar con las rutas para buscar información de configuración regional; generalmente esto incluye todo lo que se encuentra debajo de /content y con la posición de la información de configuración regional en la ruta. De forma predeterminada, el controlador de configuración regional sigue la recomendación de estructurar sitios en varios idiomas dentro de AEM.

Si su sitio no tiene una regla estricta para administrar la información de configuración regional dentro de la ruta, es posible reemplazar el controlador de configuración regional con su propia implementación.

Servicios OSGi opcionales

Los servicios OSGi opcionales se pueden implementar para personalizar varias partes del portlet. Cada servicio corresponde a una interfaz de Java. Esta interfaz se puede implementar e implementar mediante un paquete en el portlet.

RequestTracker El rastreador de solicitudes recibe notificaciones cada vez que el portlet muestra contenido. Esto le permite realizar un seguimiento de las invocaciones del portlet.
InvocationContextListener Listener que se invoca al principio y al final de cada solicitud al portlet. El detector se puede usar para cambiar o agregar información para la solicitud actual.
ErrorHandler Controlador de errores personalizado para los errores durante la fase de procesamiento.
HttpProcessor Este servicio se puede utilizar para agregar información a cada invocación de http a AEM.
PortletAction Añadir una acción propia en el portlet: esta acción se puede invocar a través de un vínculo de acción del portlet.
PortletDecoratorService Este servicio puede utilizarse para decorar el contenido del portlet.
ResourceProvider Añada su propio proveedor de recursos para entregar algún recurso a través de un vínculo de recursos de portlet al cliente.
TextMapper Permite anunciar archivos HTML, CSS y Javascript de proceso.
ToolbarButton Añada su propio botón a la barra de herramientas.
UrlMapper Añada un servicio para aplicar una asignación de URL personalizada o reescribir.
UserInfoProvider Añada su propia información sobre el usuario. Este servicio se puede utilizar para obtener información del portal al portlet.

Sustitución de Servicios predeterminados

Los siguientes servicios tienen una implementación predeterminada en el portlet de contenido (con una interfaz Java correspondiente). Para personalizar, se debe implementar un paquete que contenga la nueva implementación de servicio en la aplicación portlet.

Al implementar un servicio de este tipo, asegúrese de establecer la propiedad service.ranking del servicio en un valor positivo. La implementación predeterminada utiliza la clasificación 0 y el portlet utiliza el servicio con la clasificación más alta.

Nombre Descripción Comportamiento predeterminado
Autenticador Proporciona la información de autenticación a AEM Utiliza un usuario técnico configurable para crear y publicar. O SSO.
HTMLRewriter Reescribe vínculos, imágenes, etc. Reescribe AEM vínculos a vínculos de portal, que se pueden ampliar con un objeto UrlMapper y un objeto TextMapper
HttpClientService Gestiona todas las conexiones http Implementación estándar
LocaleHandler Gestiona la información de configuración regional Reescribe un vínculo al contenido con respecto a la configuración regional.
LocaleDetector Detecta la configuración regional del usuario. Utiliza la configuración regional proporcionada por el portal.
PrivilegeManager Comprueba los derechos de usuario Comprueba el acceso a la instancia de autor si el usuario puede editar el contenido
ToolbarRenderer Procesa la barra de herramientas Añade una funcionalidad de barra de herramientas

Eventos de portlet

La API de portlet (JSR-286) especifica eventos de portlet. El portlet de contenido AEM tiene un puente integrado, que distribuye eventos portlet para el portlet AEM como eventos OSGi, lo que hace que el manejo de eventos portlet sea conectable.

Si desea gestionar eventos específicos, declare que reciben eventos en el descriptor de implementación (o configúrelo a través del servidor del portal) e implemente un servicio OSGi declarando la interfaz EventHandler (consulte la especificación OSGi EventAdmin).

Siempre que se produce un evento de portlet, se envía un evento OSGi específico invocando a su controlador. El controlador obtiene toda la información de contexto y puede actualizar el estado del portlet en consecuencia o enviar nuevos eventos. Básicamente, dentro del método de manejo se puede utilizar toda la funcionalidad de la fase de evento del portlet.

Uso de AEM como portal

Utilice el componente Portlet para agregar ventanas de portlet a páginas AEM. Las bibliotecas compartidas que instale en el servidor de aplicaciones permiten que el componente Portlet detecte las aplicaciones portlet implementadas.

Para utilizar AEM como portal, realice las siguientes tareas:

  1. Instale el componente Portlet y las bibliotecas compartidas.
  2. Añada el componente Portlet a la barra de tareas.
  3. Configure e implemente la aplicación web que contiene los portlets que desea que aparezcan en el componente Portal.
  4. Añada el componente Portlet a una página y seleccione el portlet que desea mostrar.
NOTA

El componente portlet solo se puede utilizar cuando AEM se implementa como una aplicación web. (Consulte Instalación de AEM con un servidor de aplicaciones.)

Instalación del componente portlet

El archivo JAR de inicio rápido AEM contiene los archivos de componentes del portlet. Para obtener los archivos (cq-portlet-components.zip), puede ejecutar Quickstart o extraer el contenido.

  1. Ejecute o extraiga el contenido del archivo JAR de QuickStart y busque el archivo cq-portlet-components.zip según corresponda:

    • Ejecutar inicio rápido: crx-quickstart/opt/portal
    • Extraer contenido de inicio rápido: static/opt/portal
  2. Abra el Administrador de paquetes de la instancia de creación de CQ5 implementada en el servidor de aplicaciones. (https://appserverhost:puerto/cq5author/crx/packmgr)

  3. Utilice el Administrador de paquetes para Cargar e instalar el paquete cq-portlets-components.zip.

    El paquete instala cq-portlet-director-sharedlibs-x.x.x.jar en la carpeta /libs/portal/director del repositorio.

  4. Copie cq-portlet-director-sharedlibs-x.x.x.jar en el disco duro. Utilice cualquier medio para obtener el archivo, por ejemplo, FileVault o un cliente WebDAV.

  5. Mueva el archivo cq-portlet-director-sharedlibs.x.x.x.jar a la carpeta de biblioteca compartida del servidor de aplicaciones para que las clases estén disponibles para las aplicaciones portlet implementadas.

Añadir el componente Portlet en la barra de tareas

Añada el componente portlet al sistema de párrafos para que esté disponible para los autores.

  1. En la barra de tareas, haga clic en el icono de regla para entrar en el modo Diseño.

  2. Junto al encabezado Design of par que hay encima del primer párrafo, haga clic en Editar.

  3. En la categoría del componente General, active la casilla de verificación situada junto al componente Portlet y haga clic en Aceptar.

chlimage_1-20

Configuración e implementación de las aplicaciones de portlet

Implemente los portlets en el contenedor web del servidor de aplicaciones para que estén disponibles para el componente Portal. Antes de implementar la aplicación portlet, debe configurarla de modo que cargue el servlet de contenedor del portal de AEM. Esta configuración permite que el componente Portlet acceda a los portlets.

  1. Extraiga el contenido del archivo WAR de la aplicación portlet.

    Sugerencia: El comando jar xf name ofapp.war extrae los archivos.

  2. Abra el archivo web.xml en un editor de texto.

  3. Añada la siguiente configuración de servlet dentro del 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>
    
  4. Guarde el archivo web.xml y vuelva a empaquetar el archivo WAR.

    Sugerencia: El jar cvf nameofapp.war * comando agrega contenido del directorio actual al archivo name.app.war.

  5. Implemente la aplicación portlet en el servidor de aplicaciones. Para obtener más información, consulte la documentación del servidor de aplicaciones.

Añadir portlets a la página AEM

Utilice el componente Portal para añadir una ventana portlet a la página web. Utilice las propiedades del componente para especificar el portlet que se va a mostrar.

  1. En la página web, arrastre el componente Portlet del grupo General en la barra de tareas a la página.

    NOTA

    Después de arrastrar el componente a la página, vuelva a cargar la página para asegurarse de que funciona correctamente.

  2. Haga clic con el doble en el componente para abrir las propiedades de Portlet.

  3. En el menú desplegable Entidad de portlet, seleccione el portlet en la lista.

  4. Active o desactive la casilla de verificación Ocultar barra de título en función de si desea ver la barra de título del portlet.

  5. En el campo Ventana de Portlet, introduzca un ID de ventana de Portlet único, si lo desea.

    NOTA

    Si planea utilizar el mismo portlet más de una vez en la misma página, proporcione a cada portlet un ID de ventana diferente.

  6. Haga clic en Aceptar. El portlet se muestra en la página AEM.

    chlimage_1-12

Instalación, configuración y uso de AEM en un portlet

Para acceder al contenido proporcionado por AEM WCM, el servidor del portal debe estar equipado con el AEM Portal Director Portlet. Para ello, instale, configure y agregue el portlet a la página del portal siguiendo los pasos que se indican en esta sección.

De forma predeterminada, el portlet se conecta a la instancia de publicación en localhost:4503 y a la instancia de autor en localhost:4502. Estos valores se pueden cambiar durante la implementación del portlet. El director del portal está disponible como contenido en el repositorio en /libs/portal/directory. Deberá descargar el archivo de guerra de la aplicación antes de utilizarlo.

Descarga del archivo de guerra

  1. Con Webdav o CRXDE Lite, navegue a /libs/portal/director.

  2. Descargue cq-portlet-webapp.war.

NOTA

Estos procedimientos utilizan como ejemplo el portal de la Web, aunque son lo más genéricos posible; tenga en cuenta que los procedimientos varían para otros portales web. Aunque los pasos son básicamente idénticos para todos los portales web, debe reutilizar los pasos para el portal web en particular.

Instalación del portlet

Para instalar el portlet:

  1. Inicie sesión en el portal con privilegios de administrador.

  2. Vaya a la parte Administración de portlets del portal web.

  3. Haga clic en Instalar y busque la aplicación AEM portlet (cq-portlet-webapp.war) que descargó e introduzca otra información importante sobre el portlet.

    Para otra información esencial del portlet, puede aceptar los valores predeterminados o cambiar los valores. Si acepta los valores predeterminados, el portlet estará disponible en https://<wps-host>:<puerto>/wps/PA_CQ5_Portlet. La consola de administración OSGi proporcionada por el portlet está disponible en https://<wps-host>:<puerto>/wps/ PA_CQ5_Portlet/cqbridge/system/console (el nombre de usuario/contraseña predeterminado es admin/admin).

  4. Asegúrese de que la aplicación portlet inicio automáticamente seleccionando esa opción o casilla de verificación y guarde los cambios. Verá un mensaje que indica que la instalación se realizó correctamente.

Configuración del portlet

Después de instalar el portlet, debe configurarlo para que conozca las direcciones URL de las instancias de AEM subyacentes (autor y publicación). También puede configurar otras opciones.

Para configurar el portlet:

  1. En la ventana de administración del portal del servidor de aplicaciones, navegue a la administración de portlets, donde se muestran todos los portlets y seleccione el portlet AEM Portal Director.

  2. Configure el portlet según sea necesario. Por ejemplo, es posible que tenga que cambiar la dirección URL de las instancias de autor y publicación y la dirección URL de la ruta de inicio. Las configuraciones predeterminadas se describen en Preferencias del portlet.

    NOTA

    Si el portlet está configurado para conectarse a AEM instancias de creación y publicación que se ejecutan en una ruta de contexto distinta a /, debe habilitar la fuerza CQUrlInfo en la configuración del Administrador de biblioteca Html de estas instancias de AEM (por ejemplo, mediante Felix Webconsole) o la edición no funcionará y el cuadro de diálogo de preferencias no aparecerá.

  3. Guarde los cambios de configuración en el servidor de aplicaciones.

  4. Vaya a la consola de administración OSGI para el portlet. La ubicación predeterminada es https://<wps-host>:<port>/wps/PA_CQ5_Portlet/cqbridge/system/console/configMgr. El nombre de usuario/contraseña predeterminado es admin/admin.

  5. Seleccione la configuración Day Portal Director CQ Server Configuration y edite los valores siguientes:

    • Dirección URL base del autor: Dirección URL base de la instancia de creación de AEM.
    • Publicar URL base: Dirección URL base de la instancia de publicación de AEM.
    • El Autor Se Utiliza Como Publicación: ¿Se utiliza la instancia de autor como instancia de publicación (para desarrollo)?

    chlimage_1-13

  6. Haga clic en Guardar. Ahora puede agregar el portlet a las páginas de portal y usar el portal.

Direcciones URL de contenido

Cuando se solicita contenido desde AEM, el portlet utiliza el modo de visualización actual (publicación o autor) y la ruta actual para compilar una dirección URL completa. Con los valores predeterminados, la primera dirección URL es http://localhost:4503/content/geometrixx/en.portlet.html. El valor de htmlSelector se agrega automáticamente a la dirección URL antes de la extensión.

Si el portlet cambia al modo de ayuda y se selecciona appendHelpViewModeAsSelector, el selector help también se anexa, por ejemplo, http://localhost:4503/content/geometrixx/en.portlet.html.help. Si la ventana del portlet está maximizada y se selecciona appendMaxWindowStateAsSelector, el selector también se anexa, por ejemplo, http://localhost:4503/content/geometrixx/en.portlet.max.help.

Los selectores se pueden evaluar en AEM y se puede utilizar una plantilla diferente para los distintos selectores.

Uso de un mapa de dirección URL de contenido en AEM

Normalmente, la ruta de inicio apunta directamente al contenido de AEM. Sin embargo, si desea mantener las rutas de inicio en AEM en lugar de en las preferencias del portlet, puede señalar la ruta de inicio a un mapa de contenido en AEM, como /var/portlets. En este caso, una secuencia de comandos que se ejecute en AEM puede utilizar la información enviada desde el portlet para decidir qué dirección URL es la dirección URL del inicio. Debe enviar una redirección a la dirección URL correcta.

Añadir el portlet a la página del portal

Para agregar el portlet a la página del portal:

  1. Asegúrese de que se encuentra en la ventana de administración del servidor de aplicaciones y vaya a la ubicación donde administra las páginas. (por ejemplo, en WebSphere 6.1, haga clic en Administrar páginas).

  2. Seleccione el nombre del portlet y, a continuación, seleccione una página existente o cree una nueva página.

  3. Edite el diseño de la página.

  4. Seleccione el portlet y agréguelo a un contenedor.

  5. Guarde los cambios.

Uso del Portlet

Para acceder a la página agregada al portlet:

  1. En el menú de personalización del portlet, configure el portlet tal como lo configuró en el portal.
  2. Abra la configuración (el portlet muestra la URL del inicio de publicación configurada en la configuración del portlet), realice las modificaciones necesarias y guárdelas.

En esta página