Ejercicios de seguridad en aplicaciones Web

1. Incluir seguridad declarativa en la aplicación appseg1 para que sólo puedan tener acceso a la carpeta /prueba y al servlet ServletProtegido aquellos usuarios que tengan rol conversor.

Se pide que se aplique la seguridad sólo a la tercera URL. Como parte OPTATIVA, se pide proteger cualquiera de los tres posibles accesos al servlet (deshabilitando el alias servlet y redirigiendo a un servlet de error que deberéis implementar).

2. Incluir seguridad declarativa en la aplicación appseg2, repitiendo los pasos que consideremos necesarios del ejercicio anterior, pero utilizando en este caso autentificación basada en formularios (FORM) en lugar de la básica. Como páginas de formulario y error, podéis rellenar las páginas login.html y error.html de la aplicación con el código HTML necesario.

Probad a entrar con un usuario válido en ambos ejercicios, y después probad a cargar de nuevo la aplicación. ¿Qué diferencias notáis entre las dos formas de autentificación en cuanto a recarga de la aplicación?

3. La aplicación appseg3 es similar a las anteriores, salvo que no hay directorio prueba, y tampoco se quiere que haya configuración de seguridad en el fichero descriptor (web.xml). Se pide que añadamos al servlet ServletProtegido el código necesario para implementar la seguridad programada para acceder a él, utilizando un decodificador Base64 como se ha visto en la parte teórica. Podéis guardar los usuarios en un objeto Properties en el propio servlet. En caso de que el usuario se autentifique correctamente, el servlet mostrará su contenido, en caso contrario, volverá a pedir autentificación al usuario.

4. (OPTATIVO) Partiendo de la aplicación appseg3, cambiar la gestión de usuarios mediante un objeto Properties por la gestión a través de un fichero de texto donde se guarden los logins y passwords en el formato login:password, uno por línea.

Una vez tengamos la gestión a través del fichero, implementad un servlet (protegido, al que sólo podrán acceder usuarios con rol conversor), llamado ServletAltaUsu, que permita añadir o quitar usuarios a dicho fichero, recibiendo el login y password como parámetros de petición, y un tercer parámetro que indique si el usuario se añade o quita. Podéis llamar a dicho servlet y pasarle los parámetros desde un formulario HTML formAltaUsu.html para altas, o formBajaUsu.html para las bajas (dichos formularios también deberán estar protegidos, y accesibles sólo a usuarios con rol conversor).