Manejo de sesiones con Swing
Hola a todos.. soy nuevo en la comunidad. Les escribo desde Argentina. Estoy metido en una proyecto para armar un software de manejo de contrato y clientes para un negocio de compra y venta de automotores. Lo estoy realizando con Swing en NetBeans 6.5. Mi primer problema es el tema de la sesión. Necesito controlar que el usuario que esta usando la aplicación se ha logueado correctamente, y controlar las funciones que tiene disponible dependiendo del rol de usuario.
¿Existe alguna manera de hacer esto de forma sencilla? Porque se me ocurren algunas ideas pero lo veo difícil de implementar. En aplicaciones web es más fácil, xq los contenedores web tiene mecanismos de autenticación ya predefinidos. Pero en aplicaciones de escritorios no tengo idea.
Bueno, espero que puedan darme una mano con esto.
Saludos!
- Inicie sesión o regístrese para enviar comentarios
Me parece muy interesante tu
Me parece muy interesante tu pregunta, por que nunca he hecho algún software parecido, sin embargo me he hecho esa pregunta en algunas ocasiones, ya que pienso que es bueno estar siempre preparados, uno nunca sabe lo que algún día puede caer ($$$). Pero yo me imagino, que es parecido a que si lo hicieras como un Sistema Web: Creas tu base de datos, defines tus tipos de usuario con sus respectivas claves que sirvan de identificación en la base de datos, defines los permisos para cada tipo de usuario y al momento de desarrollar el software pues cargas los permisos de cada usuario y listo.
Sería interesante publicar un pequeño ejemplito con fines didácticos.
Capas...
Qué tipo de aplicación es? Es cliente-servidor tradicional? qué hace el servidor, es solamente base de datos (o sea cada cliente se conecta directo a la base de datos)? o es de capas, donde tienes un servidor central (un contenedor J2EE por ejemplo) y los clientes hacen peticiones a ese contenedor (por web services o RMI etc)?
En el primer caso, simplemente debes manejar autentificación pidiendo usuario y password a la base de datos en cuanto corre la app, y con eso configurar el DataSource que vas a usar para conectarte.
En el segundo caso, no manejes sesiones en el server, todo puede ser stateless pero cada petición requiere autentificación. En tu cliente pides usuario y password al inicio, validas ese login en el server y si pasa, lo guardas en memoria en el cliente, y envias esos datos en cada petición. Esto es un poco inseguro porque alguien con acceso al equipo puede inspeccionar la memoria y encontrar los datos de usuario/password; si eso es una preocupación entonces puedes manejar un token que el server devuelve al autentificar al usuario y tiene una expiración, ese token es lo que envias en cada petición y así no guardas user/pass en memoria tanto tiempo.
En cualquier caso es recomendable manejar comunicación segura usando SSL. Otra opción de hecho es darle certificados X509 a los clientes y con eso el server autentifica al cliente, además del cliente autentificar al server, pero se complica un poco la configuración/instalación de la app para el usuario.
Hola
Hola que tal mira dependiendo de en que vayuas a almacenar los datos que los mas recomendable es que lo hagas en mysql, investiga mas de la api java.sql de hay encontraras varias cosas tendras que usar el jconector o jdbc para pasar los datos a tu BD y de hay empezar a crear metodos de guardaro, logeo etc. si mal no entendi, yo he hecho proyectos de este tipo en J2SE asi que cualquier pregunta checa aqui, igual ya antes ya hay post sobre ese tema
Saludos
Bonfil