Proteger un directorio (tomcat)

128 views
Skip to first unread message

Andrés Freiman

unread,
Feb 25, 2006, 12:52:01 PM2/25/06
to JavaSOS
Hola, tengo una aplicacion web que tiene un subdirectorio "admin".
Lo que necesito es que cuando desde el navegador intente ingresar a:

http://localhost:8080/miapp/admin

Tomcat me pida usuario/password y si son correctos que me deje
continuar
y so no lo son entonces que me rebote.

Si es posible que el usuario y password sean tomados del archivo
tomcat-users.xml de Tomcat

Estuve viendo los mails sobre seguridad que enviaron anteriormente y
los probe
pero con eso cuando ingreso al directorio admin el navegador me pedia
aceptar
una clave publica.....

Aclaro que no tengo NI IDEA de seguridad. Ni siquiera tengo los
conocimientos
basicos.

Gracias !!!

Andrés

Pablo Augusto Sznajdleder

unread,
Feb 27, 2006, 1:26:28 PM2/27/06
to jav...@googlegroups.com
A ver si con esto podes hacerlo:

1 - Agregar en el web.xml estas lineas


    <security-constraint>
      <web-resource-collection>
         <web-resource-name>Nombre de la zona</web-resource-name>
                 <!-- aca protejo una pagina jsp. Supongo que si queres un
                    directorio entero, por ejemplo admin sera:  /admin/*
                   -->
             <url-pattern> /protegido.jsp</url-pattern>

<!--  (esto no tengo idea para que sirve)
     Ahora indicamos los metodos por los que no se
     puede acceder

         <http-method>GET</http-method>
         <http-method>POST</http-method>
-->        

      </web-resource-collection>

     <!-- rol que debe tener el usuario que se loguee. Definido en tomcat-users.xml -->
      <auth-constraint>
         <role-name>admin</role-name>
      </auth-constraint>

<!--
     Por fin indicamos el valor de seguridad en el
     Transporte. Como dijimos, los posibles valores son :
     NONE, CONFIDENTIAL, INTEGRAL.
     Usare NONE porque ahora mismo no tengo instalado SSL.
     * Si uso NONE => no hay que hacer nada mas... 
     * Si uso CONFIDENTIAL => hay que habilitar el SSL y generar la clave con keytool (herramienta de jdk)
-->
      <user-data-constraint>
         <transport-guarantee>CONFIDENTIAL</transport-guarantee>
      </user-data-constraint>
    </security-constraint>

    <login-config>
      <auth-method>BASIC</auth-method>
      <realm-name>Administracion</realm-name>
    </login-config>
   

DESDE AQUI TODO PARA SSL

2 - Si utilizo CONFIDENTIAL => debo habilitar el servicio de SSL. Para esto buscar en server.xml
    la entrada: [Connector port="8443"]  (sin los corchetes) y descomentarla (por default viene comentada)
   
3 - Ejecutar:  %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
4 - El password por default es: "changeit" Si lo queresmos facil debemos utilizar este password
5 - Si queresmos utilizar otro password (por ejemplo: "locomia44") entonces agregar al TAG que descomentamos
    el parametro:
                keypass="locomia44"

6 - Rezar 2 Padre Nuestro y 3 Ave Maria
7 - Cuando ingreses a: http://localhost:8080/tuapp/admin  te va a pedir que aceptes
el certificado y te va a pedir que ingreses usuario y password. El usuario y password
debe estar definido en tomcat-users.xml y el usuario debe tener asignado el rol
que definiste en el web.xml (segun explique mas arriba).

Saludos !
Pablo.



Aclaro que no tengo NI IDEA de seguridad. Ni siquiera tengo los pab...@pablosz.com.ar
http://www.PabloSZ.com.ar
http://www.JavaSOS.com.ar

Pablo E. Siciliano

unread,
Feb 27, 2006, 3:56:00 PM2/27/06
to jav...@googlegroups.com
Una aclaración, aunque parezca una verdad de perogrullo. Si uno no usa SSL,
las contraseñas pasan en texto plano. Solo estan codificadas en Base64 ( Eso
es parte del protocolo).

Por lo tanto, no es muy recomendable usar una autentificación sin SSL.

Saludos.
Pablo E. Siciliano.

Gabriel Belingueres

unread,
Mar 2, 2006, 12:43:26 PM3/2/06
to JavaSOS
Podes usar JDBCRealm contra tu base de datos que tenga los usuarios,
claves y roles de los mismos. Es muy facil de configurar.

Saludos,
Gabriel

Reply all
Reply to author
Forward
0 new messages