Jsf 2 尝试为Shiro使用自定义域时出错

Jsf 2 尝试为Shiro使用自定义域时出错,jsf-2,shiro,Jsf 2,Shiro,用于将shiro实现到JSF应用程序的BalusC教程 目前,我正试图在示例的顶部添加我自己的自定义领域,但我显然遗漏了一些东西 我有如下shiro.ini(主要是从给定的教程中复制的,可能不需要全部): 简言之,我的梦想是: import org.apache.shiro.realm.AuthorizingRealm; public class MockRealm extends AuthorizingRealm { /* Implement stuff */ } 我正在GlassFis

用于将shiro实现到JSF应用程序的BalusC教程

目前,我正试图在示例的顶部添加我自己的自定义领域,但我显然遗漏了一些东西

我有如下shiro.ini(主要是从给定的教程中复制的,可能不需要全部):

简言之,我的梦想是:

import org.apache.shiro.realm.AuthorizingRealm;

public class MockRealm extends AuthorizingRealm { /* Implement stuff */ }
我正在GlassFish v4.1上运行这个。到目前为止,一切都正常工作,直到我尝试添加这个自定义领域。这将导致以下错误:

Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: There is no filter with name '$mockRealm' to apply to chain [securityManager.realms] in the pool of available Filters.  Ensure a filter with that name/path has first been registered with the addFilter method(s). 
我找不到有关此错误的任何信息,也找不到如何正确实现自定义领域的任何示例

有人能给我指一下正确的方向吗?谢谢。

嗯,这种情况经常发生(令人烦恼)。
睡了一觉后,我意识到
securityManager.realms=$mockRealm
可能在shiro.ini的错误部分。

将此移到
[main]
下,效果很好。
有时你必须暂时忘记一些事情才能重新审视它们。

我想你的web.xml中可能有错误web.xml与BalusC的教程相同,它抱怨过滤器,但由于我没有(据说?)添加过滤器,我不明白。如果它真的是一个过滤器,我会知道把它作为一个过滤器添加到web.xml中。对不起,我忘记了shiro的动态“过滤器创建”。这在shiro.ini中定义。尝试将最后一行移到[main]部分。那是属于教授的地方,这次不是。它在config中,但在shiro.ini中。@Kukeltje对此进行了审查以接受答案,没有注意到您的后一个评论。你说得对。此外,如你所见,我在你发表评论前12分钟补充了我的答案没问题。。。没什么好争论的。只是想知道你怎么能看到你的答案是在我发表评论之前12分钟…(问题下方)
Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: There is no filter with name '$mockRealm' to apply to chain [securityManager.realms] in the pool of available Filters.  Ensure a filter with that name/path has first been registered with the addFilter method(s).