I am implementing a web application where the user needs to authenticate with his database username and password.
I woudld like to use the same entered username and password to connect to the database.
In other words, i would like that these two fields:(dbusername and dbpassword) in the hibernate configuration file:
<property name="hibernate.connection.username">dbusername</property>
<property name="hibernate.connection.password">dbpassword</property>
can be filled dynimacally dependant on the user who enterd his username and password to log in the web application.
is this do-able?
thanks
Here is how you can acheive
Configuration cfg = new Configuration();
cfg.configure("hibernate.cfg.xml"); //hibernate config xml file name
String newUserName,newPassword;//set them as per your needs
cfg.getProperties().setProperty("hibernate.connection.password",newPassword);
cfg.getProperties().setProperty("hibernate.connection.username",newUserName);
sessionFactory = cfg.buildSessionFactory();
Yes, you can set all the hibernate properties dynamically,
using
Configuration configuration = new Configuration();
configuration.configure("hibernate_sp.cfg.xml");
ServiceRegistryBuilder serviceRegistryBuilder = new ServiceRegistryBuilder().applySettings(configuration
.getProperties());
SessionFactory sessionFactory = configuration
.buildSessionFactory(serviceRegistryBuilder.buildServiceRegistry());
Session session = sessionFactory.openSession();
logger.info("Test connection with the database created successfuly.");
set properties using configuration object.