Target

Cómo habilitar la función de entrega de almacenamiento en caché según permisos del módulo de Dispatcher.

Pasos

 

Esta función requiere un servlet adicional que se implementará en AEM (necesita codificar un servlet que responda a las peticiones HEAD para devolver el código HTTP correcto). Después de la implementación, la comprobación de si un usuario puede acceder a alguna URI en caché se realiza mediante la solicitud de /bin/permissioncheck.html?uri=<handle>.

  1. Con el fin de habilitar el almacenamiento en caché según permisos, en el archivo de configuración dispatcher.any, añada la siguiente sección a su granja.  La configuración de ejemplo que se muestra a continuación habilita únicamente la comprobación de páginas html.

    # Authorization checker: before a page in the cache is delivered, a HEAD
    # request is sent to the URL specified in 'url' with the query string
    # '?uri=<page>'. If the response status is 200 (OK), the page is returned
    # from the cache. Otherwise, the request is forwarded to the render and
    # its response returned.
    /auth_checker
      {
      # request is sent to this URL with '?uri=<page>' appended
      /url "/bin/permissioncheck.html"
          
      # only the requested pages matching the filter section below are checked,
      # all other pages get delivered unchecked
      /filter
        {
        /0000
          {
          /glob "*"
          /type "deny"
          }
        /0001
          {
          /glob "*.html"
          /type "allow"
          }
        }
      # any header line returned from the auth_checker's HEAD request matching
      # the section below will be returned as well
      /headers
        {
        /0000
          {
          /glob "*"
          /type "deny"
          }
        /0001
          {
          /glob "Set-Cookie:*"
          /type "allow"
          }
        }
      }
  2. A continuación, implemente un servlet, como el que se muestra a continuación, que responde a las solicitudes HEAD.  Tenga en cuenta que una respuesta de 200 significa que el usuario tiene acceso para recuperar el archivo directamente de la caché de Dispatcher.  Cualquier otro estado que no sea 200 significa que la solicitud no se servirá desde la caché.

    A continuación, se muestra un código de ejemplo que implementa el servlet para AEM 6 (gracias a Dominique):

     

    
    	
    
    
    
    
    

[1] Código de ejemplo

Nota:

Código de ejemplo para el servlet de almacenamiento en caché según permisos.  El servlet que se muestra a continuación responde a las solicitudes HEAD con una respuesta de 200 si el usuario autenticado tiene acceso a la URI especificada.

Se aplica a

Dispatcher 4.0.2+ y AEM 6.x