Autentificación
Una vez que la ventana está creada podemos crear el código de nuestro botón para autentificar usuarios. La manera más sencilla de conseguir esto (aunque muy poco segura) es utilizar una contraseña estática, que nunca cambia.
Obtener los datos
Primero vamos a obtener los datos. Por seguridad, el JPasswordField no debe devolver directamente un String (los usuarios podrían introducir caracteres de control en el String y burlar la seguridad del programa). Para resolver este problema Java nos devuelve un arreglo de caracteres con todos los caracteres que agregó el usuario para que podamos verificar este tipo de problemas.
También es importante mencionar que como buena practica de programación vamos a crear un método que se encargue de validar al usuario, porque es util dividir el programa en unidades de control (pequeños pedazos de código que hacen algo específico, como por ejemplo, validar al usuario). El método tendrá como nombre authenticate() y regresará un valor true si el usuario es válido o false si no lo es.
Para leer los datos podemos utilizar el siguiente código:
Validando al usuario
Nuestro método por el momento siempre regresa true cuando el usuario le manda cualquier password con puras letras y números, por lo que el siguiente paso es realmente verificar que su nombre de usuario y contraseña sean válidos:
Todo junto
El método completo quedaría de la siguiente manera:
Y para poder utilizarlo sólo tenemos que mandar llamar el método en todas las rutinas que requieran validar al usuario:
Otras formas de autentificación
Como pudimos ver, la autentificación por password estático es un modelo muy débil, por lo que debemos pensar en maneras de hacerlo un poco más seguro. Una manera de lograr esto de manera sencilla (y por lo tanto muy utilizada) es crear una clase que contenga el nombre de usuario, el password y otra información importante sobre el usuario (esto depende del programa) y recorrer el arreglo con un ciclo para verificar que el nombre de usuario y contraseña existan y sean congruentes.
Si sólo se van a tener nombres de usuario y contraseñas y no es necesario guardar más información entonces tambíen se podrían crear un par de arreglos, el arreglo nombres contiene en el índice i al i-ésimo usuario y el arreglo passwords contiene en el índice i el password del i-ésimo usuario.
También podrían utilizarse mapas u otros métodos más sofisticados de relacionar información.