Apache-Tomcat Realm JDBC y SQL Server 2008 Nombre del trabajo Volumen 1, nº 12 27/05/2013
Requisitos iniciales Asumimos que se tiene un servidor Linux con la distribución Centos 6, un servidor Windows Server 2008 con SQL Server y una estación de trabajo con Windows 7 y NetBeans.
Puntos de interés especial: Contar con un Servidor Windows 2008 y SQL Server Contar con un Servidor Linux, distribución Centos 6
En la actualidad (Mayo 2013) nos encontramos en la versión 7 de Apache Tomcat, pero para poder realizar la conexión con un servidor Windows lo verifique con la versión de Apache Tomcat 6. Por lo tanto vamos a realizar la instalación del servidor Apache Tomcat 6, pero Ud. Puede instalar la versión 7 siguiendo los mismo pasos. Lo primero que realizaremos será bajar el Apache Tomcat 6 para Windows con la finalidad de recrear un ambiente de prueba en la computadora con Windows 7, desde ahí probaremos conectarnos al servidor Windows 2008 con SQL Server. Esta demás decir que la computadora con Windows 7 tiene instalado el JDK de java.
Tener una computadora para realizar pruebas con Windows 7 Profesional.
Contenido:
Entonces, en mi entorno de pruebas tengo un Windows 7 con Apache Tomcat 6, JDK y el NetBeans. Bajo este esquema solo tendría que preocuparme por conectarme al servidor Windows 2008 Server. Una vez finalizada mi aplicación voy a subir mi proyecto (JAR) al servidor Linux el cual también tendrá Apache Tomcat 6 y el
JDK. Una vez desplegada mi aplicación en el Servidor, probare desde mi computadora Windows 7 linkeando al Servidor Linux. Esta segunda parte la realizare en otra publicación, por ahora solo mostrare como conectarme desde mi Windows 7 con Apache Tomcat a SQL Server 2008.
En el ambiente de pr uebas (Windows7) El primer paso es bajar el servidor Apache Tomcat 6 a la computadora con Windows 7, una vez descargado ubicarlo en la raíz C:\ y luego ir al IDE del NetBeans para agregar el servidor Apache Tomcat . Como se ve en la figura, cuan-
do descarguen el servidor Apache Tomcat 6 deberá tener la siguiente estructura, me ha pasado que por error descargue otro cosa y no obtuve los resultados deseas.
Requisitos iniciales
1
Agregar el Servidor Apache Tomcat 6 al NetBeans.
2
Primera aplicación con Seguridad 4 Integrada Server.XML y REALM de APACHE TOMCAT
8
Inicio de sesión mediante formu- 10 larios
Página 2
Apache-Tomcat Realm JDBC y SQL Server 2008
Agregar el Servidor Apache Tomcat 6 al NetBeans. Si es la primera ver que vas a realizar esta actividad te va a resultar muy fácil, pero si ya tienes varios intentos fallidos de querer agregar un servidor Apache, déjame decirte que te va resultar muy complicado, debido a que cuando agregues un servidor de servicios de internet como Apache o GlassFish u otros, siempre te pedirá un puesto para el protocolo HTTP y una vez establecido el puerto ya no puede ser utilizado por otro servidor de internet. Esto quiere decir, que deberás tener mucho cuidado cuando le indiques que puerto deseas establecer para el protocolo HTTP por que una ve establecido otro servidor
Click derecho para agregar el nuevo Servidor Apache Tomcat 6.
El asistente de NetBeans le pedirá la ubicación de los archivos del servidor Apache Tomcat 6, tal como se ve en la imagen a la izquierda, luego deberá ingresar el usuario y password para poder acceder al menú de configuración del servidor Apache Tomcat. Por favor, no olvide el password ni el nombre de
Trabajando la Seguridad de Acceso (REALM JDBC) Un asunto muy importante es el manejo de seguridad en las aplicaciones WEB. En esta ocasión vamos a trabajar la seguridad de aplicaciones bajo el esquema de dominios o reinos que propone Apache Tomcat, pero vamos a adicionar la variante de seguridad por medio de base de datos, es decir vamos a tener una tabla de usuarios en una base de datos que Apache Tomcat utilizara para validar la existencia de usuarios y autenticar sus contraseñas.
Empezamos desde SQL Server , vamos a crear una base de datos, la voy a llamar DBSEGURIDAD y en ella creare las siguientes tablas: seg_perfil .– Almacenara los perfiles de los usuarios (Admin, User) seg_usuario.– Almacenara los usuarios y contraseñas. seg_usuario_perfil.– Asociará a los usuarios con sus perfiles.
Volumen 1, nº 12
Página 3
Estructura de tablas en SQL para la seguridad. Una vez creada la base de datos se crearan las siguientes estructu-
Configurar Apache Tomcat con REALM JDBC y SQL SERVER Lo primero que debemos hacer es bajar los controladores (JDBC) de la pagina web de Microsoft( http://www.microsoft.com/ download/en/details.aspx?id=2505 ) Una vez descargados debemos buscar el archivo “sqljdbc4.jar“ y renombrarlo a “sqljdbc.jar” para copiarlo en la carpeta “lib” de nuestro servidor Apache Tomcat instalado en C:\.
Después de copiar el archivo, debemos realizar algunos cambios en los archivos de configuración XML ubicada en la carpeta “conf” de nuestro servidor Apache Tomcat instalado en C:\.
Página 4
Apache-Tomcat Realm JDBC y SQL Server 2008
Buscamos en el archivo Server.XML <Realm Classname…..
Cambiamos la sentencia <Realm> a la siguiente Figura.
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.
Volumen 1, nยบ 12
Pรกgina 5
Primera aplicaciรณn con Seguridad Integrada Creamos una aplicaciรณn en JAVA con NetBeans.
Seleccionamos la versiรณn 5 de JAVA
PĂĄgina 6
Apache-Tomcat Realm JDBC y SQL Server 2008
DespuĂŠs de creado el nuevo proyecto, nos ubicamos en el archivo web.xml.
Vamos a modificar el archivo web.xml para que se conecte con el dominio que hemos modificado en el Servidor Tomcat.
Volumen 1, nº 12
Página 7
Descargar de la página web de Microsoft los controladores para JDBC.
Artificio: Cambiar de JAR por uno mas reciente. Este empaquetado trae dos JAR sqljdbc.jar y sqljdbc4.jar , este ultimo permite la conexión con SQL Server 2008, así que : Primero: borramos el sqljdbc.jar. Segundo: renombramos el sqljdbc4.jar a sqljdbc.jar (le quitamos el numero 4)
Reemplazar el jar por una nueva versión. Este archivo JAR lo copiamos en la ruta donde tenemos instalado el Apache Tomcat en el directorio “lib”
Página 8
Apache-Tomcat Realm JDBC y SQL Server 2008
Apache-Tomcat Realm JDBC y SQL Server 2008 Ing. Juan Basilio PMP, ITIL Dirección del trabajo principal Línea 2 de dirección Correo: jcbasilio5@hotmail.com
Ingeniero de Sistemas Titulado, egresado de la UPC con certificación en ITIL Foundation y certifi-
SOFNET EiRL
cado en PMP . Docente a tiempo parcial en el Instituto Superior
La mejor forma de aprender a programar es probando tu mismo.
Tecnológico SISE. Jefe de Sistemas en un Laboratorio Agro-Químico. Asesor y Consultor en empresas de servicios e In-
Agrégame en tu Linkedin http://www.linkedin.com/in/juanbasilio
vestigación de mercados. Miembro activo del capitulo PMI-Lima.
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.
Volumen 1, nº 12
Página 9 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.
Si nos aparece esta ventana al iniciar nuestra aplicación 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”
Iniciamos el servidor Apache Tomcat
P谩gina 10
Apache-Tomcat Realm JDBC y SQL Server 2008
Ingresamos un dato err贸neo y obtenemos el siguiente resultado
Si ingresamos un usuario valido obtenemos el siguiente resultado.
Inicio de sesi贸n mediante formularios
Creamos los siguientes archivos HTML
Volumen 1, nยบ 1
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.
Pรกgina 11