📝 Liferay
← Volver

2.1 Liferay — Portal Web Corporativo

Contexto en la UAH

La web principal de la Universidad de Alcalá, uah.es, está construida sobre Liferay Portal, que actúa simultáneamente como portal empresarial, plataforma de experiencia digital y gestor de contenidos corporativo. Liferay centraliza la presencia digital institucional de la UAH: agrupa en una única plataforma la web pública, los portales de servicios para alumnos, PDI y PAS, y los canales de comunicación interna. La elección de Liferay en universidades responde a su capacidad para gestionar una audiencia heterogénea —con roles, permisos y vistas completamente diferenciadas según el tipo de usuario— y a su integración nativa con directorios corporativos como LDAP y Active Directory, lo que permite una experiencia de acceso unificada.


1. ¿Qué es Liferay?

Definición y evolución

Liferay Portal es una plataforma de código abierto desarrollada en Java que combina las capacidades de un portal empresarial (Enterprise Portal) con las de una plataforma de experiencia digital (Digital Experience Platform, DXP). Nacida a principios de los 2000, Liferay evolucionó desde un portal web básico hasta convertirse en una solución integral para la creación de experiencias digitales personalizadas dirigidas a diferentes audiencias (clientes, empleados, ciudadanos, estudiantes).

En el contexto universitario, Liferay sirve para:

Liferay como Digital Experience Platform (DXP)

El concepto de DXP supera al de simple CMS (Content Management System). Mientras un CMS gestiona y publica contenidos, un DXP añade:


2. Arquitectura de Liferay

Visión general

Liferay es una aplicación Java EE (Jakarta EE) que se despliega sobre un servidor de aplicaciones Java. La arquitectura se articula en varias capas:

[ Navegador / Dispositivo ]
         ↓
[ Servidor Web: Apache HTTP Server / Nginx ]
         ↓  (proxy inverso)
[ Servidor de Aplicaciones: Tomcat / JBoss WildFly ]
         ↓
[ Motor Liferay Portal / DXP ]
         ↓
[ Base de datos: MySQL / PostgreSQL / Oracle / SQL Server ]
[ Motor de búsqueda: Elasticsearch ]
[ Almacenamiento de documentos: Sistema de ficheros / S3 / Documentum ]
[ Directorio corporativo: LDAP / Active Directory ]

Servidor de aplicaciones compatible

Liferay necesita un servidor de aplicaciones Java EE (Java EE Application Server) donde desplegarse. Los servidores soportados son:

En la mayoría de despliegues universitarios, incluida la UAH, se utiliza Tomcat por su simplicidad de configuración y mantenimiento.

Base de datos

Liferay requiere una base de datos relacional para almacenar toda su configuración, contenidos, usuarios, roles y permisos. Las bases de datos soportadas incluyen MySQL/MariaDB, PostgreSQL, Oracle Database y Microsoft SQL Server. La configuración de la conexión se establece mediante un datasource configurado en el servidor de aplicaciones o mediante el fichero portal-ext.properties.

Elasticsearch

Desde Liferay 7.x, Elasticsearch es el motor de búsqueda predeterminado y obligatorio para entornos de producción. Liferay indexa en Elasticsearch todos sus contenidos, usuarios y objetos para proporcionar búsqueda de texto completo de alta velocidad. En versiones anteriores se utilizaba Apache Lucene embebido, pero la arquitectura moderna desacopla el motor de búsqueda del servidor principal.


3. Conceptos Fundamentales de Liferay

Instancia de Portal (Portal Instance / Virtual Instance)

Liferay permite crear múltiples instancias virtuales del portal dentro de una misma instalación, cada una con su propio dominio, conjunto de usuarios, configuración y contenidos. Esto es útil para gestionar, desde una sola infraestructura, la web pública (uah.es), el portal del estudiante o la intranet de cada campus.

Sites (Sitios)

Un Site es la unidad organizativa fundamental de Liferay. Cada site es un portal independiente dentro de la instancia, con sus propias páginas, contenidos, usuarios miembros y configuración. Los tipos de site son:

Cada site puede tener páginas públicas (accesibles sin autenticación) y páginas privadas (solo para miembros del site). En la UAH, la web pública uah.es sería el site principal con páginas públicas, mientras que el portal del estudiante estaría en un site con páginas privadas.

Páginas (Pages)

Las páginas son las pantallas que componen cada site. Liferay distingue entre:

Las páginas se organizan jerárquicamente formando la estructura de navegación del site. Pueden heredar la configuración de páginas padre.

Portlets y Widgets

Un portlet es un componente de interfaz de usuario Java que se despliega como una aplicación independiente dentro de una página de Liferay. Cada portlet es una aplicación web auto-contenida que puede tener su propio estado, configuración y lógica. El estándar que regula los portlets en Java EE es JSR-286 (Portlet 2.0), aunque Liferay 7.x también soporta el estándar más moderno JSR-362 (Portlet 3.0).

Liferay incluye portlets propios para todas sus funcionalidades (portlets core): gestión de usuarios, foros, blogs, wiki, repositorio de documentos, calendario, etc. Las aplicaciones de terceros o desarrolladas internamente también se despliegan como portlets.

En la terminología moderna de Liferay DXP, el término widget se usa para referirse a los portlets cuando se colocan en una Widget Page, manteniendo la compatibilidad con el concepto original de portlet.

JSR-286: El estándar de portlets

JSR-286 (Java Specification Request 286) define la API estándar de portlets en Java EE. Establece el ciclo de vida de un portlet (init, render, processAction, serveResource, destroy), los modos de portlet (VIEW, EDIT, HELP) y los estados de ventana (NORMAL, MAXIMIZED, MINIMIZED). La adherencia a este estándar garantiza la portabilidad de los portlets entre diferentes portales Java que implementen la especificación. Es importante conocerlo porque cualquier pregunta sobre la arquitectura técnica de Liferay involucra este estándar.

Fragmentos (Fragments)

Los fragmentos son los bloques de construcción de las Content Pages. Son porciones de HTML, CSS y JavaScript editables que el diseñador de páginas arrastra y combina en el editor visual. Pueden ser simples (un banner, un título, una imagen con texto) o compuestos. Liferay incluye una biblioteca de fragmentos prediseñados y permite crear fragmentos personalizados.

Layouts y Temas (Themes)

El aspecto visual global de un site se controla mediante temas (Themes), que son proyectos Java/Maven/Gradle que empaquetan el HTML base (plantillas Freemarker), CSS, JavaScript e imágenes que definen la identidad visual del portal. El tema de la UAH implementa la imagen corporativa de la universidad. Los layouts definen la distribución de columnas de las Widget Pages.


4. Gestión de Contenidos en Liferay

Web Content (Contenido Web)

El Web Content es el módulo principal de gestión de contenidos de Liferay. Permite crear y publicar contenidos estructurados basados en estructuras y plantillas:

Este modelo estructura/plantilla/artículo permite reutilizar el mismo formato de contenido (una noticia, un evento, una persona de contacto) en múltiples lugares del portal con presentaciones diferentes.

Workflow de publicación

Los artículos de contenido pueden someterse a un flujo de aprobación (workflow) antes de publicarse. Liferay incluye un motor de workflow configurable que permite definir procesos de revisión multinivel: el redactor crea el contenido, el editor lo revisa, el responsable de comunicación lo aprueba y finalmente se publica.

Documents & Media (Repositorio de Documentos)

Documents & Media es el repositorio de activos digitales de Liferay. Almacena documentos, imágenes, vídeos y cualquier tipo de fichero binario, organizados en carpetas y con metadatos personalizables. Características relevantes:

Asset Publisher

El Asset Publisher es uno de los portlets más potentes de Liferay. Muestra dinámicamente colecciones de contenidos (artículos web, documentos, entradas de blog, eventos) filtrados por categorías, etiquetas, tipo de contenido, autor, fechas o cualquier combinación de criterios. Es el componente que permite crear páginas dinámicas donde el contenido se actualiza automáticamente sin intervención manual.

Taxonomía: Categorías y Etiquetas

Liferay dispone de un sistema de taxonomía para clasificar y relacionar contenidos:


5. Roles y Permisos

Modelo de seguridad de Liferay

Liferay implementa un modelo de permisos granular basado en roles que permite controlar con precisión qué acciones puede realizar cada usuario sobre cada recurso del portal.

Tipos de roles

Organizaciones

Las organizaciones son estructuras jerárquicas que modelan la estructura real de la institución (universidad → campus → facultad → departamento). Permiten agrupar usuarios y asignarles roles en el contexto de su unidad organizativa, facilitando la gestión delegada de usuarios en organizaciones grandes como la UAH.

Permisos

Los permisos en Liferay siguen el principio de denegación por defecto: todo lo que no está explícitamente permitido está prohibido. Los permisos se asignan a roles (nunca directamente a usuarios), y se definen a nivel de tipo de recurso (ej. "puede crear artículos web") o de recurso concreto (ej. "puede editar este documento específico"). La herencia de permisos sigue la jerarquía: instancia → organización → site → página → portlet → recurso.


6. Integración con LDAP y Active Directory

¿Por qué es fundamental?

En una universidad como la UAH, los usuarios (alumnos, PDI, PAS) ya existen en el directorio corporativo (LDAP o Active Directory). Recrear y mantener manualmente esos usuarios en Liferay sería inviable. La integración con LDAP permite que Liferay utilice el directorio corporativo como fuente única de verdad para la identidad de los usuarios.

Configuración LDAP en Liferay

La integración LDAP se configura desde el panel de control de Liferay (Control Panel → Instance Settings → LDAP) y permite:

SSO — Single Sign-On

Liferay soporta varios mecanismos de autenticación única (SSO) que permiten que el usuario se autentique una sola vez y acceda a todos los sistemas integrados sin volver a introducir sus credenciales:

En el contexto de la UAH, la integración con el directorio corporativo y el sistema de SSO institucional es esencial para que alumnos y personal accedan al portal con sus credenciales habituales y encuentren automáticamente personalizado el contenido según su perfil.


7. Liferay CE vs. EE (Enterprise Edition vs. Community Edition)

Liferay Community Edition (CE)

Liferay DXP (Digital Experience Platform / Enterprise Edition)

¿Qué edición usa la UAH?

Las universidades públicas con implantación a gran escala de Liferay como plataforma principal (web corporativa + portales de servicio) suelen optar por la edición Enterprise/DXP para disponer de soporte oficial con SLA, acceso a parches de seguridad garantizados y ciclos de vida predecibles para la planificación de actualizaciones. Aunque el documento no especifica explícitamente la edición, el uso de Liferay como portal principal de uah.es hace probable el uso de la edición con soporte comercial.


8. Liferay 7.x / DXP: Arquitectura Modular con OSGi

De la monolítica a la modular

Liferay 6.x era una aplicación monolítica desplegada como un único WAR sobre el servidor de aplicaciones. A partir de Liferay 7.0 (2016), la arquitectura cambió radicalmente hacia un modelo modular basado en OSGi (Open Services Gateway initiative).

OSGi y Liferay

OSGi es un estándar de modularización para aplicaciones Java. En Liferay 7.x, toda la funcionalidad se organiza en bundles OSGi (módulos JAR con metadatos de dependencias). Esto permite:

El contenedor OSGi de Liferay es Apache Felix, que gestiona el ciclo de vida de todos los bundles.

Liferay Workspace y herramientas de desarrollo

El desarrollo de componentes para Liferay 7.x se realiza mediante Liferay Workspace, un entorno de proyecto basado en Gradle (o Maven) que facilita la creación, compilación y despliegue de módulos: portlets, temas, fragmentos, extensiones del core y personalizaciones. Las herramientas de desarrollo incluyen el plugin para Eclipse (Liferay IDE) y *IntelliJ IDEA.


9. Administración y Mantenimiento

Panel de control (Control Panel)

El Panel de Control es la interfaz de administración de Liferay, accesible para usuarios con el rol Administrator. Desde aquí se gestiona todo:

Caché y rendimiento

Liferay utiliza Ehcache (y en versiones recientes también Infinispan para clustering) para cachear contenidos y objetos de base de datos. La correcta configuración del caché es crítica para el rendimiento del portal en producción.

Clustering

Para entornos de alta disponibilidad, Liferay soporta clustering: múltiples nodos Liferay trabajando de forma coordinada con sesiones de usuario compartidas, caché distribuido y almacenamiento de documentos centralizado. El balanceo de carga se gestiona con un servidor web frontal (Apache + mod_proxy_balancer o un balanceador dedicado).


Resumen: palabras clave y conceptos esenciales

Término Definición rápida
Liferay Portal / DXP Portal empresarial y plataforma de experiencia digital; base de uah.es
DXP Digital Experience Platform; CMS + personalización + multicanalidad + workflows
Portlet Componente Java de interfaz de usuario que se despliega en páginas Liferay
JSR-286 Estándar Java EE que define la API de portlets (Portlet 2.0)
Site Unidad organizativa de Liferay; agrupa páginas, contenidos y usuarios
Content Page Tipo de página moderno basada en fragmentos arrastrables
Widget Page Tipo de página clásica basada en columnas con portlets
Fragmento Bloque HTML/CSS/JS reutilizable para construir Content Pages
Web Content Módulo de gestión de contenidos; usa estructuras + plantillas Freemarker
Estructura Esquema de campos que define un tipo de contenido
Plantilla Código Freemarker que define cómo se renderiza una estructura
Documents & Media Repositorio de activos digitales de Liferay
Asset Publisher Portlet que muestra colecciones dinámicas de contenido filtradas
Rol de instancia Rol con alcance global en todo el portal (ej. Administrator)
Rol de site Rol con alcance limitado a un site concreto
LDAP Directorio corporativo integrado con Liferay para autenticación y usuarios
SSO Single Sign-On; autenticación única mediante CAS, SAML 2.0 u OpenID Connect
CAS Central Authentication Service; protocolo SSO habitual en universidades
SAML 2.0 Estándar de federación de identidad; Liferay actúa como Service Provider
Liferay CE Community Edition; gratuita, código abierto, soporte comunitario
Liferay DXP/EE Enterprise Edition; licencia comercial, soporte oficial con SLA
OSGi Framework de modularización Java usado desde Liferay 7.x
Bundle OSGi Módulo JAR con metadatos de dependencias; unidad de despliegue en Liferay 7.x
Apache Felix Contenedor OSGi utilizado internamente por Liferay
Tomcat Servidor de aplicaciones Java más utilizado con Liferay
Elasticsearch Motor de búsqueda obligatorio en producción desde Liferay 7.x
Liferay Workspace Entorno de desarrollo basado en Gradle para construir módulos Liferay
portal-ext.properties Fichero de configuración principal de Liferay

Ideas clave para retener

  1. La web uah.es está construida sobre Liferay Portal, que actúa como portal empresarial, DXP y CMS corporativo.
  2. Liferay es una aplicación Java EE que se despliega sobre un servidor de aplicaciones; en la UAH se usa Apache Tomcat.
  3. La arquitectura se basa en sites (espacios de portal), páginas (con Content Pages modernas o Widget Pages clásicas) y portlets/widgets como unidades funcionales básicas.
  4. Los portlets siguen el estándar JSR-286 (Portlet 2.0), que define su ciclo de vida, modos y estados de ventana.
  5. La gestión de contenidos se articula en torno a estructuras (esquema de datos) y plantillas Freemarker (presentación), instanciadas en artículos de Web Content.
  6. Documents & Media es el repositorio central de activos digitales con control de versiones y metadatos personalizables.
  7. La integración con LDAP/Active Directory permite que Liferay use el directorio corporativo como fuente de identidad y delegue la autenticación.
  8. El SSO se implementa mediante CAS, SAML 2.0 u OpenID Connect; fundamental para la experiencia unificada en el ecosistema de aplicaciones de la UAH.
  9. Liferay CE es gratuita y de código abierto; Liferay DXP/EE incluye soporte oficial con SLA y funcionalidades avanzadas.
  10. Desde la versión 7.x, Liferay adopta una arquitectura modular basada en OSGi con Apache Felix, que permite el despliegue en caliente de módulos sin reiniciar el servidor.