Seguridad en Java

Que tal como estas espero de lo mejor mi amigo mira te quiero Hacer una pregunta tengo una aplicación Java con mysql y ya funciona a las mil maravillas nada más tengo un pequeño problema la seguridad en la escuela me dijeron que namadamas debo de tener un administrador que es el que puede acceder a todo el sistema dar de bajas en todas las tablas, dar altas en todas las tablas y realizar ventas. Y debo de tener usuarios que nada más puedan acceder a la tabla ventas o sea que nada más puedan vender y nada más dar de alta clientes, ¿pero dar de altas Usuarios y Bajas eso ya no se les debe de permitir como le puedo hacer para manejar esa seguridad debo de bloquear los JMenu para los usuarios? ¿O me servirán los comandos de grant o revoque?
Crees que me pudieras orientar con un código o respuesta
Hola que tal como estas espero de lo mejor mi amigo mira te quiero Hacer una pregunta tengo una aplicación Java con mysql y ya funciona a las mil maravillas nada más tengo un pequeño problema la seguridad en la escuela me dijeron que namadamas debo de tener un administrador que es el que puede acceder a todo el sistema dar de bajas en todas las tablas, dar altas en todas las tablas y realizar ventas. Y debo de tener usuarios que nada más puedan acceder a la tabla ventas o sea que nada más puedan vender y nada más dar de alta clientes, ¿pero dar de altas Usuarios y Bajas eso ya no se les debe de permitir como le puedo hacer para manejar esa seguridad debo de bloquear los JMenu para los usuarios? ¿O me servirán los comandos de grant o revoque? Crees que me pudieras orientar con un código o respuesta

2 Respuestas

Respuesta
1
Puedes implementar dos tipos de seguridad: una por programa, y otra por base de datos.
La de programa sería más o menos así: necesitas tres tablas relacionadas: usuario, perfil y permiso. Un usuario puede tener uno o varios perfiles, y cada perfil una serie de permisos. Cuando se loguee el usuario, recuperas todos los permisos del usuario (los de todos sus perfiles). Dependiendo de esos permisos, muestras o no los menús de acceso a los mantenimientos de usuarios, clientes, etc.
La seguridad por base de datos es más complicada de implementar, pues te obliga a que cada usuario de tu aplicación debería estar dado de alta como usuario de mysql, y tendrías que gestionar los permisos de acceso a las tablas por cada usuario. Después, en java tendrías que controlar los errores que genera la BBDD cuando un usuario sin permisos intenta por ejemplo escribir en una tabla en la que no puede por temas de permisos.
Yo te recomiendo que implementes la seguridad por programa. Además de controlar los permisos en la generación de menús, te recomiendo que también testees esos permisos en el momento de hacer el alta, baja, modificación, etc. Así, si alguien se "salta" la primera capa de seguridad e intenta acceder directamente a la función de negocio (sin pasar por el menú) no se le permita.
Si tienes dudas en algún momento a la hora de implementar todo esto, consúltame.
¿Muchas Gracias por constestarme Carlos voy a Intentarlo por programa nada más que te molesto otra vez me podrías decir cuales son los Códigos pa bloquear Menús? Muchas Gracias por todo Carlos
Para bloquear menús (JMenu) puedes usar varios métodos, pero te recomiendo uno de estos:
jmenu.setVisible(false);  //Menú invisible
jmenu.setEnabled(false); //Menú deshabilitado
Lo que más te guste.
Respuesta
1
Disculpa por no contestar, pero he estado algo ocupado con la escuela.
Bueno con lo que me dices pues una puedes deshabilitar o habilitar los menús llamando a algún método que te valide la sesión iniciada; u otra opción sería que los menús los dejes normales solo que al tratar de insertar o borrar registros de la BD te pida que estés loggeado o que lo hagas. Será buena idea que crearas un menú que sea para iniciar sesión y ya dependiendo del tipo de cuenta que sea habilite y deshabilite funciones en tu bd.
No sé tal ves yo lo que haría seria crear una tabla usuarios, que contenga el username, el pass y el tipo de cuenta. Y pues bueno para guardar el password en la BD te recomiendo uses una función que es la md5(); que encripta la cadena que se guarda ahí para mayor seguridad.
Al insertar sería algo parecido a
INSERT INTO tabla (nombre_usuario, password, tipo_cuenta) values ('username', md5('123456'), 'administrador');
Esta una opción, pero estoy seguro que tal ves tu tendrás una mejor ;), espero que esto te sirva y pues, ¿me cuentas que tal no?
No Te preocupes ustedes hacen esto de Buena onda agradezco tu respuesta, Y pues mira yo desde el principio de la Aplicación creee mi Login y claro que tengo mi tabla de Usuarios con los campos que tu dices, Ahora con lo que estoy batallando es con que método puedo Bloquear esos Menús no tienes Algún Código Roberto con el que me puedas Ayudar te lo Agradecería y pues Gracias por contestarme
Mmm pues códigos no tengo, tengo un ratillo que deje de manejar java, yo creo necesito empezar de nuevo, pero me imagino que puedes tener un método que por ejemplo si no estas loggeado les de un setEnabled(false); a los meús menos al del login y así hace alguna validación para ver que tipo de usuario esta loggeado para así habilitar o deshabilitar los menús

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas