oracle / ojdbc-extensions

The Oracle JDBC Driver Extensions include providers for centralized configuration or token providers for authentication with the DB.
Universal Permissive License v1.0
13 stars 5 forks source link

DBTools config provider needs to support new PEM format for keystore/truststore #85

Open jeandelavarene opened 4 months ago

jeandelavarene commented 4 months ago

DBTools connections will soon support truststore and keystore in the PEM format. See the example below. The DBTools provider needs to support this case. This feature will have a dependency on the OCI SDK that supports it and on the JDBC thin driver ability to support PEM in memory files.

{
  "type" : "ORACLE_DATABASE",
  "id" : "ocid1.databasetoolsconnection.region1.sea.amaaaaaaxxxxxx",
  "displayName" : "adminADBSPublic",
  "compartmentId" : "ocid1.compartment.region1..aaaaaaaaxxxxx",
  "lifecycleState" : "ACTIVE",
  "lifecycleDetails" : "Created",
  "timeCreated" : "2024-05-29T21:06:02.337Z",
  "timeUpdated" : "2024-05-29T21:06:02.337Z",
  "runtimeSupport" : "SUPPORTED",
  "runtimeEndpoint" : "https://dbtools.r1.oci.oracleiaas.com/",
  "runtimeIdentity" : "AUTHENTICATED_PRINCIPAL",
  "relatedResource" : {
    "entityType" : "AUTONOMOUSDATABASE",
    "identifier" : "ocid1.autonomousdatabase.region1.sea.xxxxxxx"
  },
  "connectionString" : "(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb-xyz.us-phoenix-1.oraclecloud.com))(connect_data=(service_name=xxxxxxxx_low.adb.oraclecloud.com))(security=(ssl_server_dn_match=yes)))",
  "userName" : "admin",
  "userPassword" : {
    "valueType" : "SECRETID",
    "secretId" : "ocid1.vaultsecret.region1.sea.amaaaaaaxxxxxx"
  },
  "advancedProperties" : null,
  "keyStores" : [ {
    "keyStoreType" : "PEM",
    "keyStoreContent" : {
      "valueType" : "SECRETID",
      "secretId" : "ocid1.vaultsecret.region1.sea.amaaaaaxxxxxx"
    },
    "keyStorePassword" : {
      "valueType" : "SECRETID",
      "secretId" : "ocid1.vaultsecret.region1.sea.amaaaaaaxxxxx"
    }
  } ],
  "privateEndpointId" : null,
  "proxyClient" : {
    "proxyAuthenticationType" : "NO_PROXY"
  },
  "freeformTags" : { },
  "definedTags" : { },
  "systemTags" : { },
  "locks" : [ ]
}