【问题标题】:How do I define the initial context factory in shiro.ini?如何在 shiro.ini 中定义初始上下文工厂?
【发布时间】:2017-04-28 12:25:09
【问题描述】:

在我的 Shiro 应用程序中,我使用 JndiRealmFactory 来定义我的领域。我像这样注册我的领域:

Hashtable<String, String> args = new Hashtable<>();
args.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory");
InitialContext ctx = new InitialContext(args);
ctx.bind("realms/MyRealm", myRealm);

但是,Shiro 找不到realms/MyRealm。我认为原因是,我需要定义JndiRealmFactory 的jndiEnvironment,其中包含Context.INITIAL_CONTEXT_FACTORY 属性。但是,我不知道如何在我的shiro.ini 中设置此属性:

realmFactory.jndiEnvironment = ?

我正在 TomEE 上运行我的应用程序。

我当前的shiro.ini 看起来像这样:

realmFactory = org.apache.shiro.realm.jndi.JndiRealmFactory
realmFactory.jndiNames = realms/MyRealm

【问题讨论】:

  • 发布完整的 shiro.ini 不需要 realmFactory.jndiEnvironment
  • 我发布的代码是我在注册领域时得到的全部内容。我错过了什么吗?

标签: java jndi shiro apache-tomee


【解决方案1】:

您不应该在运行时绑定 EE 上下文中的任何内容。您可以在 tomcat 中将其定义为资源或 resources.xml(特定于tomee),然后只需使用标准查找来读取值(没有传递给 InitialContext 的特殊属性。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-19
  • 1970-01-01
  • 2016-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多