我目前正在开发一个项目,我们有一个Java Web应用程序从第三方供应商处购买,该供应商使用Microsoft的JDBC驱动程序连接到SQL Server。但是,我已经被要求必须使用专有加密协议加密连接字符串。
所以我的问题是扩展从Microsoft分发的JDBC驱动程序以包含此加密是多么可行。在这一点上,我主要考虑创建一个JDBC包装器,它将在下面使用Microsoft JDBC驱动程序。
我愿意接受过去可能做过类似事情的经验丰富的人的其他建议,或者即使他们可以分享这种方法的缺陷。
答案 0 :(得分:2)
使用jtds。这都是java,适用于sql server,并支持加密。这是替代品减去设置加密。您只需要知道他们在哪里配置了他们的JDBC URL(希望在WEB-INF下的配置文件或类似的地方),在那里放入你的jtds URL,然后将Jar放在WEB-INF / lib目录中。您可能必须提取WAR文件并使用jtd重新打包它。这取决于第三方供应商如何向您提供应用程序。是的,我已经使用它运送生产包装企业软件多年。
所以说他们有一个像这样的简单属性文件:
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
当然,您必须填写所有&lt;&gt;和[]部分根据需要。然后将jtds.jar及其所需的任何依赖项复制到WEB-INF / lib并重新启动服务器。它应该工作。
答案 1 :(得分:1)
如果原始驱动程序没有您想要的功能 - &gt;你可以获取正式版本(或分叉)并修补/添加你的需求
答案 2 :(得分:-1)
此时我主要考虑创建一个将使用Microsoft JDBC驱动程序的JDBC包装器。 我猜你需要服务器端的代理来解密连接信息,并将数据库连接转发到SQLServer的端口。