如何设置春/ Heroku的/ Postgres的SSL数据源(How to setup Sprin

2019-06-26 18:57发布

我试图创建从我的Heroku / Spring应用程序到postgres.heroku.com的Postgres数据库的数据源。 这是我applicationContext.xml片段。

<bean id="securityDataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="org.postgresql.Driver"/>
    <property name="url" value="jdbc:postgresql://url/dstabase"/>
    <property name="username" value="user"/>
    <property name="password" value="password"/>
</bean>

但是,当我运行应用程序时,Tomcat的给出了这样的错误:

Cannot create PoolableConnectionFactory (FATAL: no pg_hba.conf entry for host "10.11.12.13", user "username", database "database", SSL off)

我怎样才能将其配置为使用SSL? 我需要它才能嘱咐针对postgres.heroku.com连接

Answer 1:

您需要有关SSL的信息扩展您的JDBC连接URL。

你的JDBC连接URL将需要包括以下内容:

ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

所以你的情况的网址是:

jdbc:postgresql://url/dstabase?ssl=true&amp;sslfactory=org.postgresql.ssl.NonValidatingFactory

源出于此信息: https://devcenter.heroku.com/articles/connecting-to-relational-databases-on-heroku-with-java#connecting-to-a-database-remotely



Answer 2:

当连接到的Heroku Postgres的使用JDBC,你有时也除非你添加SSL URL参数得到一个错误:

ssl=true
sslfactory=org.postgresql.ssl.NonValidatingFactory


Answer 3:

它的工作对我来说:

  <bean id="securityDataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="org.postgresql.Driver"/>
        <property name="url" value="jdbc:postgresql://host:port/database?ssl=true&amp;sslfactory=org.postgresql.ssl.NonValidatingFactory"/>
        <property name="username" value="user"/>
        <property name="password" value="password"/>
    </bean>

我在做这个错误是使用与替代&amp; (愚蠢的我知道)

 ?ssl=true&amp;sslfactory=org.postgresql.ssl.NonValidatingFactory

是的链接是绝对有帮助的: https://devcenter.heroku.com/articles/connecting-to-relational-databases-on-heroku-with-java#connecting-to-a-database-remotely

并牢记:在这个环节上,JDBC:Postgres的 ://主机..被使用,这可能不适合你(使用PostgreSQL代替)如果发生没有合适的SQL驱动程序错误



Answer 4:

以下为我工作:

jdbc:postgresql://url/databaseName?sslmode=require&amp;sslfactory=org.postgresql.ssl.NonValidatingFactory

我倒是改变ssl=truesslmode=require



文章来源: How to setup Spring/Heroku/postgres SSL datasource