作为保护我们在Oracle数据库中启用ASO的所有连接的一部分,我能够使用oracle.jdbc.pool.OracleDataSource从我的java进行安全连接。但我们有使用apache基本数据源的项目。我尝试了以下但仍然没有加密数据。
BasicDataSource ods = new BasicDataSource();
ods.setUrl(URL);
ods.setUsername(user);
ods.setPassword(password);
ods.setConnectionProperties("AutoCommit=false;");
ods.setConnectionProperties("OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL=REQUIRED;");
ods.setConnectionProperties("OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES=(AES256);");
ods.setConnectionProperties("OracleConnection.CONNECTION_PROPERTY_THIN_NET_CRYPTO_SEED=(sfdsvcfdssegdsvg);");
如果我在连接属性中遗漏了某些内容,请告诉我。感谢。
答案 0 :(得分:1)
方法 BasicDataSource #setConnectionProperties(String) 会覆盖之前添加到DataSource的所有属性
您需要使用 BasicDataSource#addConnectionProperty(String,String) 方法添加单个属性:
BasicDataSource ods = new BasicDataSource();
ods.addConnectionProperty("OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL", "REQUIRED")
或使用相关数据构建Properties实例,然后将其添加到DataSource:
Properties prop = new Properties();
prop.setProperty("OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_LEVEL", "REQUIRED");
prop.setProperty("OracleConnection.CONNECTION_PROPERTY_THIN_NET_ENCRYPTION_TYPES", "(AES256)")
...
BasicDataSource ods = new BasicDataSource();
ods.setConnectionProperties(prop);