【发布时间】:2022-10-20 17:19:06
【问题描述】:
我必须修改通过 Spring 连接到 Postgres (PostGIS) 数据库的旧 java 8 应用程序。
我需要考虑通过 SCRAM-SHA-256 进行身份验证。我不管理服务器部分,只管理应用程序部分。
目前,我正在实例化一个 PGPoolingDataSource 对象来创建连接(URL + 用户 + 密码)。然后,它在 JdbcTemplate 对象中使用,如下所示:
public JdbcTemplate createJdbcTemplate(ConnectionInfo cnxInfos)
{
return new JdbcTemplate(createDataSource(cnxInfos));
}
public DataSource createDataSource(ConnectionInfo cnxInfos)
{
PGPoolingDataSource ds = new PGPoolingDataSource();
ds.setUrl(cnxInfos.url);
ds.setUser(cnxInfos.user);
ds.setPassword(cnxInfos.pwd);
return ds;
}
关于此身份验证主题还有另一篇文章,但通过基本的 DriverManager 而不是 Spring。有没有一种解决方案可以让我不必更改所有 API?也许另一个 DataSource 子类?或者只是使用加密密钥更改赋予 ds.setPassword(...) 的 de 值?
此外,在 POM.xml 中有 (groupId/artifactId/version) org.postgresql/postgresql/9.4.1212 和 net.postgis/postgis-jdbc/2.1.7.2。也许我应该升级到新版本。
谢谢!
【问题讨论】:
-
您需要使用更新的 JDBC 驱动程序。 9.4.x 已经过时了
-
是的 !现在已经升级了。谢谢 !
标签: spring postgresql java-8 postgis sha256