【发布时间】:2017-10-06 12:32:40
【问题描述】:
我在 Payara 服务器中使用不同的 JNDI 创建了多个领域。意味着我有多个具有相同结构的数据库(用户和组),并希望通过在运行时获取/设置域名来获得身份验证/授权。我不确定如何在运行时获得 JDBCRealm 名称,需要任何帮助。
我试图通过:
Context iniCtx = new InitialContext();
DataSource ddsa = (DataSource) iniCtx.lookup("java:app/multi2jndi");
DatabaseMetaData mdd;
我不工作,因为它是用来查找资源的。
【问题讨论】:
-
请查看此问题 (stackoverflow.com/questions/5104185/…) 并由 Nayan 回答。
-
@D00de 这是关于调用数据源,我的问题是关于在运行时获取域名。
-
您的 Realm 在哪里配置,在 web.xml 文件中?
-
我在 payara 中创建了 2 个领域。例如:tenant1Realm 和tenant2Realm。我的方法是在登录时检测tenantID,并在它的帮助下在登录方法之前调用特定领域(领域名称包含tenantID)。基本上我正在尝试使用声明性领域,但我只会在会话范围内调用所需的领域。
-
第二种方法是在项目中而不是在 Payara 中定义领域,因为所有必需的参数都是相同的,只是租户的数据源会不同。但为此,我需要一些类来将我的数据源与我现在不知道的领域连接起来。 **是否可以在 web.xml 中有占位符,我可以在后端为特定会话解决它??
标签: jakarta-ee glassfish jdbcrealm payara