通过Hibernate访问连接中的SSL参数

时间:2015-04-22 17:17:59

标签: java hibernate ssl jdbc sessionfactory

我正在使用一个hibernate java应用程序,它使用sessionfactory来创建连接和会话。当我在postgresql数据库中使用它时,我传递了正确的jdbc连接字符串来构建sessionfactory,然后从中获取我的会话。我唯一能够访问的是jdbc4connection。

我如何阅读在安全连接中使用哪种密码套件,使用哪种SSL协议等?

以下是我初始化sessionfactory的方法:

Configuration configuration = new Configuration();
Properties p = configuration.getProperties();
p.setProperty("hibernate.connection.url","jdbc:postgresql://127.0.0.1:5432/postgres?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory");
p.setProperty("hibernate.connection.username", "myusername");
p.setProperty("hibernate.connection.password", "mypassword");
p.setProperty("hibernate.connection.driver_class",
            "org.postgresql.Driver");
p.setProperty("hibernate.dialect",
            "org.hibernate.dialect.PostgreSQLDialect");
ServiceRegistry serviceRegistryWebOnkys = new StandardServiceRegistryBuilder()
            .applySettings(p).build();
SessionFactory sessionFactory = configuration
            .buildSessionFactory(serviceRegistryWebOnkys);

1 个答案:

答案 0 :(得分:0)

如果您可以通过常规JDBC了解如何使用它(我不知道它是如何完成的),那么您可以使用Hibernate执行相同的操作。

session.doWork(new Work() {
    @Override
    public void execute(Connection connection) throws SQLException {
        // access the connection here and perform regular jdbc operations.
    }
});

当我设置了一些只能在“OracleConnection.java”实例上设置的Oracle特定属性时,我就必须这样做。

oracle.jdbc.driver.OracleConnection oc = (oracle.jdbc.driver.OracleConnection) connection.getMetaData().getConnection()