AEM as a Cloud Service: Impedir la exposición de metadatos del repositorio en respuestas de error

En este artículo se explica cómo resolver un problema en Adobe Experience Manager as a Cloud Service en el que las configuraciones de controladores de error personalizados exponen los metadatos del repositorio en las respuestas de error. La solución implica actualizar el controlador de error para garantizar que las páginas de error se representen como HTML.

Descripción description

Entorno

Adobe Experience Manager as a Cloud Service (AEMaaCS)

Síntomas

Las respuestas de error gestionadas por un controlador de error personalizado exponen metadatos del repositorio, como jcr:primaryType, jcr:createdBy y jcr:created, especialmente cuando el controlador de error incluye una página de error de mantenimiento sin especificar la extensión .html. Esto ocurre cuando una solicitud a una ruta de acceso de servlet heredada (fPor ejemplo: /bin/wcm/search/gql.servlet.json) devuelve un error 404 y se procesa mediante un JSP del controlador de error personalizado (como /apps/sling/servlet/errorhandler/default.jsp).

Causa

Si el controlador de error incluye una página de error de mantenimiento sin la extensión .html, la respuesta hereda la extensión de la solicitud original (como .json), lo que provoca que los metadatos del repositorio se serialicen en el cuerpo de la respuesta. No se exponen credenciales ni datos empresariales confidenciales, pero esto aumenta el riesgo de divulgación de información.

Resolución resolution

Siga los pasos a continuación para resolver el problema:

  1. Abra el código base del proyecto y busque el archivo JSP del controlador de error personalizado, que normalmente se encuentra en /apps/sling/servlet/errorhandler/default.jsp.

  2. Identifique las líneas donde se incluye la página de error de mantenimiento. Pueden tener el siguiente aspecto:

    <jsp:include page="/content/<your-site>/maintenance/maintenance-error" />

  3. Actualice cada instrucción include para especificar explícitamente la extensión .html. Por ejemplo:

    <jsp:include page="/content/<your-site>/maintenance/maintenance-error.html" />

  4. Guarde los cambios e implemente el código actualizado en el entorno de AEM as a Cloud Service mediante el proceso de implementación estándar.

  5. Compruebe la corrección accediendo a los extremos afectados (como /bin/wcm/search/gql.servlet.json) y confirme que las respuestas de error ya no exponen los metadatos del repositorio y se representan como páginas de error de HTML.

recommendation-more-help
experience-cloud-kcs-help-kbarticles