Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将com.ibm.as400.access.AS400JDBCDataSource与JNDI一起使用时未设置密码错误_Jdbc_Jndi_Ibm Midrange - Fatal编程技术网

将com.ibm.as400.access.AS400JDBCDataSource与JNDI一起使用时未设置密码错误

将com.ibm.as400.access.AS400JDBCDataSource与JNDI一起使用时未设置密码错误,jdbc,jndi,ibm-midrange,Jdbc,Jndi,Ibm Midrange,我正在尝试使用com.ibm.as400.access.AS400JDBCDataSource与JNDI建立JDBC连接。 调试时,我注意到当设置InitialContext时,会创建一个数据源实例。当我从代码中获得引用时,会创建另一个实例,其中包含一个AS400对象的副本(包含url、用户名和连接配置) 在im调用的第一个实例上 as400Ds.setPassword("MYPWD"); 问题是当AS400实例被共享时,密码丢失,所以我得到了这个错误 Password is not set

我正在尝试使用com.ibm.as400.access.AS400JDBCDataSource与JNDI建立JDBC连接。 调试时,我注意到当设置InitialContext时,会创建一个数据源实例。当我从代码中获得引用时,会创建另一个实例,其中包含一个AS400对象的副本(包含url、用户名和连接配置)

在im调用的第一个实例上

as400Ds.setPassword("MYPWD");
问题是当AS400实例被共享时,密码丢失,所以我得到了这个错误

Password is not set

结果是如果你打电话

as400ds.setSavePasswordWhenSerialized(true);
在创建的第一个实例上,将共享密码

然而,对我来说,这不是预期的行为。对于任何其他JDBC驱动程序,都不需要执行类似的AFAIK操作

有人愿意解释这背后的原因吗

调用此方法时是否可能存在安全漏洞?或者其他jdbc驱动程序不需要什么

序列化时的公共void设置保存密码(布尔保存密码)

设置序列化此数据源对象时是否将密码与其余属性一起本地保存。如果保存了密码,则由应用程序来保护对象的序列化形式,因为它包含连接到IBMi系统所需的所有信息。默认值为false。将密码与其他属性一起保存会带来安全风险,因此默认情况下不会保存密码。如果应用程序程序员选择接受此风险,请将此属性设置为true,以在序列化数据源对象时强制工具箱将密码与其他属性一起保存


结果表明,如果调用as400ds.setSavePasswordWhenSerialized(true);在创建的第一个实例上,将共享密码。然而,对我来说,这不是预期的行为。对于任何其他JDBC驱动程序,都不需要执行类似的AFAIK操作。有人愿意解释这背后的原因吗?调用此方法时是否可能存在安全漏洞?或者其他jdbc驱动程序不需要类似的东西?谢谢你的解释。出于某种原因,我在发布问题时找不到你提供的文档,我知道这已经有一段时间了——我只是偶然发现了它,并写了一封以防万一的信:)干杯