Memory Realm En Tomcat
Tomcat provee varios Security Realm ya creados y listos para usar. Uno puede implementar su propio realm implementando la interfaz org.apache.catalina.Realm
Contenido
Memory Realm
El Memory Real, implementado por la clase org.apache.cataline.realm.MemoryRealm, permite utilizar un archivo XML muy simple como origen de datos. Un Memory Real es útil para desarrollo o proyectos muy simples.
Configuración
Realizaremos los pasos para segurizar una aplicación web, y configurar un Memory Realm en Tomcat.
Crear los usuarios
Para crear los usuarios, deberemos agregarlos al archivo "tomcat-users.xml", que por default se encuentra en
TOMCAT_HOME/conf/tomcat-users.xml
El formato del archivo es muy simple; a continuación un ejemplo:
<tomcat-users> <user name="zim" password="where-is-gir" roles="administrador" /> <user name="dosideas" password="dosideaspwd" roles="usuario, administrador" /> </tomcat-users>
Activar el Memory Realm
A continuación le indicaremos a Tomcat que utilice el Memory Real como dominio de usuarios predeterminado. Esto se realiza editando el archivo:
<tomcat_home>/conf/server.xml
Buscaremos allí la siguiente linea y la dejaremos descomentada:
<Realm className="org.apache.catalina.realm.MemoryRealm" />
Listo! Tomcat ahora utilizará el Memory Real como dominio de usuarios; los usuarios será los configurados en el archivo tomcat-users.xml
Restringir la aplicación
Por último, deberemos tomar nuestra aplicación web y restringir recursos. Esto se hace a través del archivo web.xml Sobre el final del archivo, se agregan los Security Constraints y el formulario de login que usaremos.
<security-constraint> <web-resource-collection> <web-resource-name>Dos Ideas Restringido</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>usuario</role-name> </auth-constraint> </security-constraint>
<login-config> <auth-method>BASIC</auth-method> <realm-name>Dos Ideas</realm-name> </login-config>
Reiniciar Tomcat, deployar la aplicación web, y listo! Cuando accedamos a cualquier página, debería aparecernos una ventanita para ingresar los datos de login.
Es interesante notar que cambiar el dominio de usuarios (por ejemplo, hacer que los mismos estén en una base de datos) no implica cambios en el código, sino un cambio en la configuración del Realm.