Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > JPA - ¿Cambiar usuario y contraseña de un EntityManager?

Hola, estoy haciendo una aplicacion en NetBeans 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.

¿alguien me puede decir como cambiar el usuario y contraseña que usa JPA desde el codigo?

Gracias desde ya por la ayuda!

mayo 7, 2014 | Registered Commenteraugus1990

Buenas,

No acabo de entender muy bien tus requerimientos pero bueno... respondiento a tu pregunta:

Map properties = new HashMap();
properties.put("javax.persistence.jdbc.user", user);
properties.put("javax.persistence.jdbc.password", password);
EntityManager em = factory.createEntityManager(properties);

No obstante, la autorizacion en JPA se deberia tratar asi:
http://jpasecurity.sourceforge.net/reference/authorization.html

Un saludo

mayo 7, 2014 | Unregistered CommenterUnoPorAhi

Hola @UnoPorAhi,

Primero gracias por la ayuda. Habia visto esa forma que mostras en otra web pero el problema es que en ese caso crea un EntityManager nuevo. Yo lo unico que quiero ahcer es modificar el usuario y contraseña de un EntityManager ya creado.

¿se entiende mi problema?

Saludos!

mayo 7, 2014 | Registered Commenteraugus1990

Buenas,

La respuesta es clara: no lo puedes hacer. Tienes siempre que recrear el entitymanager con las nuevas propiedades usando la factoria.
http://stackoverflow.com/questions/19773258/how-to-modify-properties-after-create-entity-manager-factory-from-persistence-xm

Dos lecturas complementarias interesantes respecto a lo que quieres hacer:
http://en.wikibooks.org/wiki/Java_Persistence/Auditing_and_Security
http://wiki.eclipse.org/EclipseLink/Examples/JPA/Auditing

Un saludo

mayo 8, 2014 | Unregistered CommenterUnoPorAhi

En el sentido estricto, un EntityManager no está asociado a una contraseña. Ese valor lo controlas en los parámetros de la conexión que utilizas para acceder en la base de datos.

mayo 8, 2014 | Registered Commenterantoniovl