![](/img/trans.png)
[英]The driver could not establish a secure connection to SQL Server by using SSL
[英]How to establish SSL connection with DB (SQL Server, PG), in a driver agnostic way?
我有一个与数据库连接的应用程序。 DB 可以是 SQL Server、PG 等。我现在需要将应用程序配置为使用 SSL。
我正在使用休眠并相应地配置数据源。 到目前为止,我正在使用org.apache.commons.dbcp2.BasicDataSource
。
我知道为了使用 SSL 连接到 SQL Server,我需要使用SQLServerDataSource
。 但是如果有人决定使用 PG 数据库,它就行不通了。
有没有办法动态配置单个数据源? 或者是否有一个我可以使用的通用数据源,而不管运行时提供的 jdbc 驱动程序(mssql 或 pg)如何?
传递 JVM 参数如-Djavax.net.ssl.trustStore
和-Djavax.net.ssl.trustStorePassword
修改 jdbc 连接字符串不是一个选项。
我正在使用 Spring(主要是 XML 配置)来引导应用程序。
在 Spring 中,您可以使用配置文件替换使用过的数据源类。
关键思想是您可以提供同一个 bean 的多个定义。 这些定义将包含在具有不同配置文件属性的单独<beans>
元素中。
<beans profile="embedded-db">
<jdbc:embedded-database id="dataSource">
<jdbc:script location="classpath:com/bank/config/sql/schema.sql"/>
<jdbc:script location="classpath:com/bank/config/sql/test-data.sql"/>
</jdbc:embedded-database>
</beans>
<beans profile="sql-server">
<!-- Configuration of you SQL Server data source -->
</beans>
<beans profile="postgresql">
<!-- Configuration of you PostgreSQL data source -->
</beans>
运行应用程序时,需要设置配置属性spring.profiles.active
以选择一个或多个配置文件。
不幸的是,现代 Spring 文档在设置 XML 配置方面没有提供太多帮助。 我认为他们现在被认为是遗产。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.