Hola, estoy haciendo una aplicacion en NetBeans (Java) que debe ser usada por varios usuarios con distintos privilegios. Quiero usar jTables vinculadas con un List result, Persistence Query y un Entity Manager, pero que todos o algunos datos esten restringido a ciertos usuarios con menos privilegios.
Segun vi puedo cambiar el usuario y contraseña manualmente yendo a la pestaña "Services - Databases" pero esto no me sirve ya que necesito hacerlo desde el codigo. :huh:
¿alguien me puede decir como cambiar el usuario y contraseña que usa JPA desde el codigo?
Gracias desde ya por la ayuda! :)
Lo primero que tienes que tener en cuenta, es que no tiene que ver nada Java con Netbeans, Netbeans es un IDE nomas.
Cuando cambias el usuario y password, estas cambiando las credenciales del usuario que tiene acceso a la base de datos que estas utilizando tu aplicación. Pero lo que quieres hacer es diferente, lo que intentas hacer es un sistema de control de acceso.
Puedes utilizar JAAS, o simplemente crear tu propio sistema de autorización y autenticación.
Saludos.
Cita de: ~ Yoya ~ en 8 Mayo 2014, 04:38 AM
Lo primero que tienes que tener en cuenta, es que no tiene que ver nada Java con Netbeans, Netbeans es un IDE nomas.
Cuando cambias el usuario y password, estas cambiando las credenciales del usuario que tiene acceso a la base de datos que estas utilizando tu aplicación. Pero lo que quieres hacer es diferente, lo que intentas hacer es un sistema de control de acceso.
Puedes utilizar JAAS, o simplemente crear tu propio sistema de autorización y autenticación.
Saludos.
Pero por ejemplo he visto que con JPA hacen esto al crear un EntityManager:
Map properties = new HashMap();
properties.put("javax.persistence.jdbc.user", user);
properties.put("javax.persistence.jdbc.password", password);
EntityManager em = factory.createEntityManager(properties);
Ahi establece el usuario y la contraseña que usara el EntityManager ¿no? entonces ¿no hay una forma de cambiar el usuario y contraseña posteriormente cuando el EntityManager ya ha sido creado?
Gracias desde ya por la ayuda. :P
Cita de: --<<<@u6u$t0>>>-- en 8 Mayo 2014, 06:04 AM
Ahi establece el usuario y la contraseña que usara el EntityManager ¿no? entonces ¿no hay una forma de cambiar el usuario y contraseña posteriormente cuando el EntityManager ya ha sido creado?
Hay no establece la contraseña del EntityManager, en el ejemplo que pones lo que haces es setear el usuario y password del JDBC que se para connectarse a una base de datos y cuyo usuario y password que se le especifican, son usuarios creado en el gestor de base de datos.
Cita de: ~ Yoya ~ en 9 Mayo 2014, 02:16 AM
Hay no establece la contraseña del EntityManager, en el ejemplo que pones lo que haces es setear el usuario y password del JDBC que se para connectarse a una base de datos y cuyo usuario y password que se le especifican, son usuarios creado en el gestor de base de datos.
Ok, ¿pero se puede cambiar ese usuario y contraseña seteados? ¿sabes como podria hacerlo? Si sabes me ayudaria un monton porque usando esto evito tener que programar un monton de cosas referentes a la vinculacio nde las jTable con las tablas de la base de datos.
Gracias por la ayuda!
Crea otro EntityManager con el nuevo usuario y password, y listo.
Pero te lo repito y sin ofender, para realizar una aplicación basada en usuarios, hacerlo de la forma que lo haces es una asquerosidad. Lo ideal es tener una tabla con los usuarios y password...
Saludos.
podrías basarte en spring security.
mkyong te puede ayudar.