是否可以配置JBoss / Wildfly数据源以使用更改的客户端凭据?

时间:2015-02-13 08:01:09

标签: dynamic jboss credentials wildfly

我知道这不是通常的方式。我们正在使用具有许多存储过程的现有Oracle DB。程序在很多方面使用变量USER。此外,许可不允许使用“功能”用户登录,每个用户必须使用自己的帐户。

问题出现了:是否可以将JBoss / Wildfly数据库连接池配置为保持/创建具有不同凭据的连接,这些凭据是在登录时提供的?

感谢任何提示

1 个答案:

答案 0 :(得分:3)

一个选项可能是使用CLI的Model API动态创建数据源。请参阅以下示例:

public void createDatasource() throws Exception{
  ModelNode request = new ModelNode();
  request.get(ClientConstants.OP).set(ClientConstants.ADD);
  request.get(ClientConstants.OP_ADDR).add("subsystem",
          "datasources");
  request.get(ClientConstants.OP_ADDR).add("data-source",
          "java:jboss/datasources/NewDatasource");
  request.get("jndi-name").set("java:jboss/datasources/NewDatasource");
  request.get("connection-url").set("jdbc:as400://1.2.3.4/SCHEME");
  request.get("driver-class").set("com.ibm.as400.access.AS400JDBCDriver");
  request.get("driver-name").set("jt400.jar");
  request.get("user-name").set("username");
  request.get("password").set("password");
  request.get("pool-name").set("pool_NewDatasource");
  ModelControllerClient client = ModelControllerClient.Factory.create(
          InetAddress.getByName("127.0.0.1"), 9999);
  client.execute(new OperationBuilder(request).build());
}

希望有所帮助