2

我目前正在从事一个项目,我们从第三方供应商处购买了一个 Java Web 应用程序,该应用程序使用 Microsoft 的 JDBC 驱动程序连接到 SQL Server。但是,我被要求必须使用专有加密协议对连接字符串进行加密。

所以我的问题是扩展从 Microsoft 分发的 JDBC 驱动程序以包含这种加密是否可行。在这一点上,我主要考虑创建一个 JDBC 包装器,该包装器将在下面使用 Microsoft JDBC 驱动程序。

我愿意接受更有经验的人提出的其他建议,这些人过去可能做过类似的事情,或者即使他们可以分享这种方法的陷阱。

4

3 回答 3

3

使用 jtds。都是java,很适合sql server,支持加密。这是替换减去设置加密的下降。你只需要知道他们在哪里配置了他们的 JDBC URL(希望是在 WEB-INF 下的配置文件或类似的地方),把你的 jtds URL 放在那里,然后把 Jar 放到 WEB-INF/lib 目录中. 您可能必须提取 WAR 文件并使用 jtds 重新打包它。这仅取决于此第 3 方供应商如何将其应用程序交付给您。是的,我多年来一直使用它交付生产打包的企业软件。

http://jtds.sourceforge.net/

所以说他们有一个像这样的简单属性文件:

db.url=jdbc:mssql:....
db.username=bibby
db.password=blahblahblah

将其更改为:

db.url=jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]
db.username=bibby
db.password=blahblahblah

当然,您必须根据需要填写所有 <> 和 [] 部分。然后将 jtds.jar 和它需要的任何依赖项复制到 WEB-INF/lib 并重新启动服务器。它应该工作。

于 2012-06-07T19:37:53.033 回答
1

如果原始驱动程序没有您想要的功能->您可以获取官方版本(或分叉)并修补/添加您的需求

https://github.com/Microsoft/mssql-jdbc/releases

于 2017-01-10T15:59:20.683 回答
-1

在这一点上,我主要考虑创建一个 JDBC 包装器,该包装器将在下面使用 Microsoft JDBC 驱动程序。我猜你需要服务器端的代理来解密连接信息,并将数据库连接转发到 SQLServer 的端口。

于 2012-06-09T12:35:45.467 回答