Memory Realm En Tomcat

De Dos Ideas.
Saltar a: navegación, buscar

Tomcat provee varios Security Realm ya creados y listos para usar. Uno puede implementar su propio realm implementando la interfaz org.apache.catalina.Realm

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.

Ver también