Acceso a zonas privadas en OpenCms. Propiedad Login-form

05/06/2009       Sergio Raposo Vargas       Artículo

En multitud de ocasiones, cuando he tenido que afrontar un proyecto en el que se incluia una zona en la web privada para ciertos usuarios segía los siguientes pasos:

  •  Defino una unidad organizativa web
  • Defino un grupo propio dentro de dicha unidad organizativa
  • Instalaba y configuraba el módulo de registro del paquete Alkacon OAMP y hacia que los usuarios se registraran sobre mi grupo para usuarios web
  • Una vez realizada la pantalla de registro, y introducia una página de login (o lo incluia en alguna sección de la web, ya sea cabecera, columna derecha, ...)
  • Le quitaba todos los permisos a todos los usuarios (All Others) y se lo daba al grupo recien creado.

Hasta que todo funciona correctamente, yo cuando quiero acceder a dicha zona privada, me autentico usando mi formulario y si todo es correcto accedo a dicha zona privada.

Pero, ¿Qué ocurre cuando intento acceder una ruta privada directamente si no me he autenticado antes? Evidentemente no puedo acceder al contenido ya que no tengo permisos (este funcionamiento es correcto), pero resultado de tal intento era la aparición de un formulairo del propio navegador que me solicita un usuario y una contraseña, que encima normalmente no funciona.

Pues esto tiene fácil solución, y es usar la propiedad login-form. Esta propiedad funciona de la siguiente forma, cuando un usuario solicita acceder a un recurso, se comprueba si tienes permisos para ello, en el caso de tenerlos pinta el contenido de dicho recurso. En el caso de no disponer de los permisos necesarios OpenCms lee la propiedad login-form, y reenviará la página a la ruta indicada. En el caso de no indicarse nada pues no hará nada y mostrará el cuadro de autenticación del navegador.

Gracias a esta propiedad por tanto, podremos reenviar a nuestra página de autenticación (cuadro de login) en el que el usuario ya tendrá que autenticarse.

Una de las principales características es que, podemos localizar a que contenido quiso acceder el usuario para que, una vez haya introducido su usuario y contreseña se vaya directamente al contenido solicitado.

Como siempre en OpenCms, esta propiedad se hereda para todos los recursos hijos, por lo tanto, podemos configurar dicha propiedad en la carpeta principal de nuestro portal.