使用动态JDBC用户名和密码的最佳方式是什么?

使用动态JDBC用户名和密码的最佳方式是什么?,jdbc,xpages,xpages-extlib,Jdbc,Xpages,Xpages Extlib,我们正在创建一个带有MySQL后端的XPages应用程序。应用程序将由多个客户使用。每个数据库都有自己的NSF数据库和相应的MySQL数据库。每个客户都有自己的MySQL用户名。我们正在使用扩展库JDBC组件(ConnectionManager) 我们计划将用户名和密码存储在NotesDocument中。通过这种方式,NSF的设计可以轻松地从NTF模板更新,而不会影响此数据。但是,ConnectionManager组件和@GetJdbcConnectionSSJS函数都从存储在WEB-INF/j

我们正在创建一个带有MySQL后端的XPages应用程序。应用程序将由多个客户使用。每个数据库都有自己的NSF数据库和相应的MySQL数据库。每个客户都有自己的MySQL用户名。我们正在使用扩展库JDBC组件(
ConnectionManager

我们计划将用户名和密码存储在
NotesDocument
中。通过这种方式,NSF的设计可以轻松地从NTF模板更新,而不会影响此数据。但是,ConnectionManager组件和
@GetJdbcConnection
SSJS函数都从存储在WEB-INF/jdbc文件夹中的文件中读取用户名、密码和其他连接信息。当NSF设计更新时,存储在那里的文件将被覆盖,从而丢失特定于客户的信息

似乎没有办法使这些文件成为动态文件(WEB-INF按规范是只读的),或者在其中包含动态元素(请参阅my)

我们可以在
ConnectionManager
中使用动态JDBC URL,但是ExtLib手册警告不要这样做。我们似乎失去了连接池。此外,
@GetJdbcConnection
函数不接受JDBC URL

那么,存储NSF特定JDBC连接信息的最佳方式是什么

编辑:已解决
我创建了jdbcConnectionManager组件的一个子类。这里详细介绍了该过程:

最好是对Extlib类进行子类化。因为提供了extlib源代码,所以不太难。
另一个选项是使用版本控制系统维护每个客户的分支,这些分支仅在配置文件中有所不同

@Lauri:look-into-NSFFileJdbcProvider。java@Frantisek:那个文件看起来很有前途。如果我创建自己的子类,如何利用它?
JdbcDataSourceProvider
类直接引用
NSFFileJDBCProvider
。它只包含localProvider的getter。我必须为整个exlibx包创建我自己的版本吗?@stwissel:你建议创建JDBCConnectionManager组件的子类吗?我最终为JDBCConnectionManager组件创建了子类。你有进展吗?