ColdFusion和Oracle瘦客户端的数据库连接加密和完整性

时间:2010-08-30 19:26:10

标签: java oracle coldfusion jdbc

作为ColdFusion数据源,我们使用Oracle瘦客户端连接数据库。所以,基本上我们使用的是JDBC URL,例如jdbc:oracle:thin:@ ...和驱动程序类oracle.jdbc.OracleDriver

这可以成功运行,但我们也想设置加密和完整性参数。在Java中,类似地通过在获得连接之前设置Properties对象来完成,如下所示:

Properties prop = new Properties();
prop.put("oracle.net.encryption_client", "REQUIRED");
prop.put("oracle.net.encryption_types_client", "( DES40 )");
prop.put("oracle.net.crypto_checksum_client", "REQUESTED");
prop.put("oracle.net.crypto_checksum_types_client", "( MD5 )");

...

OracleDataSource ods = new OracleDataSource();
ods.setProperties(prop);
ods.setURL("jdbc:oracle:thin:@localhost:1521:main");
Connection conn = ods.getConnection();

...

有没有办法可以将这些参数传递给ColdFusion数据源。理想情况下,我希望集中进行此操作,以便不需要更改所有cfquery或cfstoredproc。

我也知道在Oracle AS等应用程序服务器中,创建一个显示“添加属性”的数据源时有一个选项。在那里你可以添加这样的属性。所以,我想在应用程序中创建一个JNDI DS。服务器,然后神奇地连接到它,但这可能会对应用程序产生一些影响。

除此之外,我还考虑通过CF管理API(cfide.adminapi.administrator)与CF数据源进行通信,以及扩展Oracle驱动程序的选项,以便当CF连接它时,这些参数已经设置好。

我很乐意就此提出您的专业意见和建议。

2 个答案:

答案 0 :(得分:2)

我知道这是一个老问题......

您绝对可以将连接字符串属性传递给任何ColdFusion数据源。

在CF ADMIN中打开数据源后,打开“高级设置”。您可以在“高级设置”选项卡中更改的第一个选项是"连接字符串"。这将是由&符号(&)分隔的所有参数的名称 - 值对,以便在与数据库的连接上传递。

例如:

encryption_client=REQUIRED&encryption_types_client=DES40&crypto_checksum_client=REQUESTED&crypto_checksum_types_client=MD5`

然而,OP的答案是,您也可以在JDBC URL上传递参数。

例如:

使用Progress Datadirect驱动程序,您的JDBC URL可能如下所示:

jdbc:datadirect:oracle://server;SID=someSID;encryption_client=REQUIRED;encryption_types_client=DES40;crypto_checksum_client=REQUIRED;crypto_checksum_types_client=MD5

请记住,你的参数是用分号分隔的,而不是逗号。

定义数据源时,请确保使用正确的KIND驱动程序......本机数据源设置屏幕无法使用某些功能,因此要使用更高级的功能,您可能需要使用OTHER。

答案 1 :(得分:0)

ColdFusion中的所有数据源都可以配置连接字符串。我会看看是否可以将您的属性作为连接字符串的一部分传递。

要更改连接字符串,请在CF管理员中打开数据源,然后转到“高级设置”。那里有一个盒子可以填写。

如果你想出来那么整个过程应该是那些使用数据源的过程。

我希望有所帮助。

相关问题