miércoles, junio 29, 2011

Problemas con JDBCRealm en Tomcat6 sobre Ubuntu

Me ha llevado unos días el poder desplegar correctamente una aplicación que usaba un realm para la validación de usuarios.

Una vez configurado los ficheros oportunos en el proyecto (podéis ver una entrada sobre esto aquí), al desplegar la aplicación e intentar acceder a los recursos protegidos por el realm, el servidor me redirigía contínuamente a la página de error del login definida para la aplicación.

El problema, aunque simple, me costó más de tres días de trabajo. El servidor era una instalación limpia de un Apache+Tomcat6+MySQL en una Ubuntu. Esta versión de Tomcat para Ubuntu (y supongo que para todas las distro Linux), no se instala con el formato tradicional de carpetas, sino que aparece instalada sobre distintos directorios. Tengo la impresión de que está predefinida para el uso de distintas instancias sobre la misma instalación.

El motivo de que no me validara el usuario cuando accedía a recursos protegidos era que Tomcat no era capaz de encontrar el driver de MySQL. En esta instalación de Tomcat no existe una carpeta TOMCAT_HOME/common/lib (y si la creas, no la tiene en cuenta), y hay que colocar estos en la ruta CATALINA_HOME, que está establecida por defecto en /usr/share/tomcat6 (tomcat6 es el nombre de mi instancia). Ahí hay que dejar los drivers.

Si se quiere cambiar el valor de CATALINA_HOME, deberemos editar el fichero /etc/default/tomcat6. Este fichero también contiene otras cosas interesantes, merece la pena echarle un vistazo.

Bueno... espero que ayude.

No hay comentarios: