使用 JDBC-Thin Connection 在 Keycloak Quarkus 中设置 Oracle 数据库 v$session 属性

问题描述 投票:0回答:0

我在使用 Quarkus 为 Keycloak 设置 Oracle v$session 属性时遇到问题。 例如,使用 jdbc 连接,您可以执行以下操作:

Properties pro = new java.util.Properties();
pro.put("v$session.osuser", "MY_USER");         
pro.put("v$session.machine", "DEPLOY_123");         
pro.put("v$session.program", "P26D_s");

DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
Class.forName(driverName).newInstance();
con = DriverManager.getConnection(Url, pro);
...

我尝试了什么? 添加具有以下内容的 quarkus.properties 文件:

quarkus.datasource.jdbc.additional-jdbc-properties.connectionProperties="v$session.OSUSER=MY_USER"

到 Keycloak /conf 目录,只是为了测试一个属性。 如果我添加 quarkus.datasource.jdbc.additional-jdbc-properties.v$session.OSUSER=MY_USER,keycloak 告诉我,DataSource 没有属性的设置器。没错,考虑以下课程: https://docs.oracle.com/cd/E18283_01/appdev.112/e13995/oracle/jdbc/xa/client/OracleXADataSource.html,因此是连接属性。但是文档没有告诉我任何关于 v$session 属性的信息。至少我知道,他正在尝试应用这些属性。 我正在测试以下方式:

  • 构建 docker 镜像,使用 /opt/keycloak/conf 中的 quarkus.properties
  • 使用 oracle-xe 镜像启动 docker compose
  • 启动后,查看keycloak日志,查询Oracle DB中的SYS.V_$SESSION表,查看是否设置了OSUSER、PROGRAM或MACHINE。

有人有想法吗? 干杯

oracle jdbc keycloak quarkus
© www.soinside.com 2019 - 2024. All rights reserved.