martes, 6 de septiembre de 2011

Seguridad en Apache Tomcat con MSSQL 2008 y Netbeans 6.9

Hola a todos quisiera compartir estos tip's con Uds. debido a que todo lo tuve que reunir de varios sitios y ejemplos de clases de la universidad y claro esta agradecer a mi amigo Renzo por sus tablas en SQL que anteriormente estanban en PostgreSql y muy amablemente me las cedió para este ejemplo en SQL Sever 2008.



1 Apache-tomcat-6.0.33
1.1 Descargar el servidor
Descargar el servidor Apache Tomcat de la pagina web http://tomcat.apache.org/download-60.cgi descargar el Binary Distributions / 32-bit Windows zip (pgp, md5)
Descomprimirlo en la unidad C:\ apache-tomcat-6.0.33




1.2 Instalar en el NetBeans IDE 6.9

Añadir el servidor Apache Tomcat al IDE del NetBeans





Seleccionar el Tomcat 6.0



Indicar en Server Location la ruta del servidor Apache Tomcat y copiar lo mismo en Catalina Base, en Username colocar un nombre de usuario, en este caso coloco Admin y una contraseña fácil de recordar, damos check a Si no existe crear usuario y por ultimo Finish.


Al finalizar deberá quedar registrado nuestro servidor Tomcat 6.0




2 SQL Server 2008

2.1 Crear Base de Datos de Seguridad

Click en nueva base de datos






Colocamos como nombre de nuestra base de datos DBSEGURIDAD y presionamos OK


2.2 Crear Tablas de Seguridad

Luego agregamos tres tablas



La tabla seg_perfil deberá contenet todos los perfiles posibles para la administración del servidor Apache Tomcat, estos perfiles son “admin”,”manager” y “tomcat”, para poder acceder a las aplicaciones web será necesario agregar el perfil “usuario”.







La tabla seg_usuario almacena los usuarios que podrán iniciar sesión en nuestras aplicaciones, como ven esta también el usuario Administrador y su password es adm123.




La tabla seg_usuario_perfil almacena la relación que existe entre la tabla perfiles y usuarios. Como pueden apreciar el usuario Administrador tiene los perfiles de admin, manager y tomcat, todos estos perfiles son nesarios para poder iniciar el servidor Apache Tomcat. Como se ve solo los usuario Pepe y Maria podrán acceder a las aplicaciones web más no el Administrador.




3 Configurar Apache Tomcat con REALM JDBC y SQL SERVER

3.1 Controlador JDBC de Microsoft SQL Server 2008
Ir a la pagina web de http://www.microsoft.com/download/en/details.aspx?id=2505




Descargar el empaquetado y verificar que tengamos los JAR de SQL Server



Este empuetado trae dos JAR sqljdbc.jar y sqljdbc4.jar , este ultimo permite la conexión con SQL Server 2008, asi que :
Primero: borramos el sqljdbc.jar
Segundo: renombramos el sqljdbc4.jar a sqljdbc.jar (le quitamos el numero 4)


Debiendo quedar así:




Este archivo JAR lo copiamos en la ruta donde tenemos instalado el Apache Tomcat en el directorio “lib”





3.2 Server.XML y REALM de APACHE TOMCAT
En la ruta donde tenemos instalado el servidor Apache Tomcat , buscamos en la carpeta conf el archivo server.xml y le damos editar.



Buscamos en el archivo Server.XML

Cambiamos la sentencia a la siguiente:



Como se puede apreciar la sentencia anterior se coloca como comentario y la nueva agregamos el driver de SQL Server, la ruta del servidor y la Base de Datos, el usuario y contraseña y por ultimo especificamos la tabla de usuarios y la tabla de roles.






4 Primera aplicación con Seguridad Integrada
4.1 Crear aplicación Web con JAVA









4.2 Web.xml y REALM



Vamos a modificar el archivo web.xml para que se conecte con el dominio que hemos modificado en el Servidor Tomcat.




Aquí estamos indicando que la autenticación será la básica (aparecerá una ventana del sistema solicitando el usuario y contraseña) en la sección security Constraints especificamos que “/*” todos los archivos de nuestra aplicación web están protegidos y solo los usuarios que tengan el rol de “user” podrán acceder a él.

4.3 Iniciando el servidor Apache Tomcat y nuestra aplicación

Iniciamos el servidor Apache Tomcat



Iniciamos nuestra aplicación Web


Si nos aparece esta ventana al iniciar nuestra apliacacion es por que el servidor tomcat se esta iniciando por primera vez y necesita confirmar que es el usuario Administrador que creamos en la tabla de usuarios del SQL Server.
Usuario : “Administrador”
Passwor: “adm123”




Luego de ingresar estos datos aparecerá nuestra aplicación solicitando el usuario y la contraseña del los usuarios.




Ingresamos un dato erróneo y obtenemos el siguiente resultado




Si ingresamos un usuario valido obtenemos el siguiente resultado.



4.4 Inicio de sesión mediante formularios
Creamos los siguientes archivos HTML





Modificamos el web.xml



Reiniciamos el servidor Apache Tomcat y ejecutamos el Proyecto , a veces falla a la primera solo hay que volver a insistir para que aparezca el login.


No hay comentarios: