繁体   English   中英

如何以与驱动程序无关的方式与 DB(SQL Server、PG)建立 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM