2015-04-22 30 views
0

我正在使用一個使用sessionfactory創建連接和會話的hibernate java應用程序。正如我用postgresql數據庫使用它,我傳遞適當的jdbc連接字符串來構建sessionfactory,然後從中獲取我的會話。唯一能夠訪問的是jdbc4連接。通過休眠連接訪問SSL參數

我怎樣才能讀取哪個密碼套件在安全連接中使用,使用哪種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); 

回答

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.jdbc.driver.OracleConnection oc = (oracle.jdbc.driver.OracleConnection) connection.getMetaData().getConnection() 
+0

雖然我不能通過常規的JDBC連接來完成。我需要訪問連接的SSLSocketFactory。 – oszd93

+0

嘗試打開postgres包的TRACE級別登錄。它可能會給出一些關於如何做的指示。 – Mecon