31 de marzo de 2020

:: Liferay. Tiempo de sincronización con el LDAP

Como sabemos Liferay permite vincular con el LDAP mediante la definición de las credenciales y mapeo de campos oportuno. Por defecto, desde Liferay se comprobará periódicamente si debe importar algo desde el LDAP; este valor está establecido por defecto a 10 minutos en el fichero: "portal.properties".

En cualquier caso, si necesitásemos modificar este tiempo de comprobación, podríamos hacerlo a través del fichero: "portal-ext.properties" mediante la definición de la siguiente línea:

ldap.import.interval=15


Siendo el valor 15, el número de minutos entre cada comprobación o sincronización.

28 de marzo de 2020

:: Integración de Analytics en nuestro portal. Problema en la generación de informe

Como describimos en otro post (https://netic360.blogspot.com/2016/03/integracion-de-analytics-en-nuestro.html), es posible llevar cabo la integración de nuestra cuenta de Analytics en un portal web. Sin embargo, debido a un bug, es posible que a la hora de crear un nuevo informe con el plugin (Analytics) no se cargue el formulario para llevar a cabo la parametrización oportuna.


Para solventar este problema, lo que debemos hacer es repetir el proceso desde una ventana de incógnito; es decir, accederemos a nuestra cuenta de Google Drive desde una ventana de incógnito y seguiremos los pasos descritos en el post indicado anteriormente.

25 de marzo de 2020

:: Liferay. Error Configuración de autenticación a través del LDAP: invalid attribute description; remaining name

En Liferay es posible definir el proceso de autenticación a través de nuestro Directorio Activo Corporativo (LDAP). En este caso, u únicamente a modo de recordario sobre un problema -que al final era una tontería- pero que nos llevó un poco de tiempo localizar.

Tras llevar a cabo la definición -desde el panel de control de Liferay- del servidor LDAP y mapeo de los campos correspondientes, verificando que la prueba de conexión era correcta, a la hora de pulsar el botón: "Probar la configuración de usuarios LDAP", no devolvía ningún resultado y los logs se observaba la siguiente traza:


ERROR [ajp-bio-8009-exec-19][IncludeTag:129] Current URL /group/control_panel/manage?p_p_id=130&p_p_lifecycle=0&p_p_state=exclusive&p_p_mode=view&refererPlid=22323&_130_struts_action=%2Fportal_settings%2Ftest_ldap_users generates exception: javax.naming.directory.InvalidSearchFilterException: invalid attribute description; remaining name 'OU=Plantilla, OU=XXXXXXXX, DC=XXXXXXXX, DC=XXXXX'

javax.naming.directory.InvalidSearchFilterException: invalid attribute description; remaining name 'OU=Plantilla, OU=XXXXXXXX, DC=XXXXXXXX, DC=XXXXX'

        at com.sun.jndi.ldap.Filter.encodeSimpleFilter(Filter.java:446)

        at com.sun.jndi.ldap.Filter.encodeFilter(Filter.java:146)

        at com.sun.jndi.ldap.Filter.encodeFilterString(Filter.java:74)

        at com.sun.jndi.ldap.LdapClient.search(LdapClient.java:547)

        at com.sun.jndi.ldap.LdapCtx.doSearch(LdapCtx.java:1985)

        at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1847)

        at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1772)

        at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:386)

        at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:356)

        at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:339)

        at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:267)

        at com.liferay.portal.security.ldap.PortalLDAPUtil.searchLDAP(PortalLDAPUtil.java:820)

        at com.liferay.portal.security.ldap.PortalLDAPUtil.getUsers(PortalLDAPUtil.java:617)

        at org.apache.jsp.html.portlet.portal_005fsettings.test_005fldap_005fusers_jsp._jspService(test_005fldap_005fusers_jsp.java:677)

        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

        at com.liferay.portal.servlet.DirectRequestDispatcher.include(DirectRequestDispatcher.java:57)

        at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:78)

        at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53)

        at com.liferay.taglib.util.IncludeTag.include(IncludeTag.java:295)


En nuestro caso el problema era que en el campo: "Filtro de búsqueda para la importación", habíamos puesto -debido a una modificación-: "((objectClass=Person))", cuando debería ser: "(objectClass=Person)", es decir, sobraría el "doble paréntesis".


12 de marzo de 2020

:: Coronavirus. Herramienta de seguimiento en tiempo real


En estos días, estamos preocupados por la evolución de la pandemia del coronavirus y la cantidad de información que recibidos a través de todos los medios.
Mediante una herramienta gráfica podemos seguir minuto a minuto la evolución de esta creciente infección global.

Acceso: https://www.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6

:: Liferay. Obtener los usuarios activos desde Groovy

Una solución rápida para obtener la relación de usuarios activos en Liferay 7.4 es por medio de un script en Groovy. Para ello accederemos a...