You're using Jetty? I just ran through my debugger using jetty 7.6.3
in a similar setup (different filter, but same concept) and the init
method is called when I call server.start() on the server that is
configured with the ServletContextHandler.
Maybe you could share more of your code with us?
I'm using a different filter, but here's the relevant portion of my
stack trace, it may help you:
at com.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:163)
at
org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:102)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
at
org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:748)
at
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249)
at
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:676)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
at
org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224)
at
org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:167)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
at
org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90)
at org.eclipse.jetty.server.Server.doStart(Server.java:260)
at
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
If Filter.init() isn't getting called, perhaps another option is to
call FilterHolder.doStart().
Hope that helps,
Jared
On Tue 28 Aug 2012 10:03:40 AM CDT, Gregor Jarisch wrote:
> Hi,
>
> I would like to setup my shiro config programmically.
> If have seen this example:
> http://mail-archives.apache.org/mod_mbox/shiro-user/201202.mbox/%3CCAETPiXZtvh=vg1f-yenx_egmppuqeejg7ong13jyteekhuq...@mail.gmail.com%3E
>
> Since IniShiroFilter is marked as deprecated, I switched this to
> ShiroFilter.
>
> In the example from the mailing list it says, that I have to initialize
> the filter with
>
> filter.init(filterConfig);
>
> But where do I get the filterConfig from?
>
> When I only call filter.init(); I get "IllegalArgumentException:
> ServletContext argument must not be null."
> When I just skip this init call I'll get
> "org.apache.shiro.config.ConfigurationException: Shiro INI configuration
> was either not found or discovered to be empty/unconfigured."
>
> This is my code:
>
> private static void setupShiro(ServletContextHandler context)
> {
> context.addEventListener(new EnvironmentLoaderListener());
>
> final Ini ini = new Ini();
> ini.addSection("main");
> ShiroFilter shiroFilter = new ShiroFilter()
> {
> protected Ini loadIniFromConfig()
> {
> return ini;
> }
> };
>
> context.addFilter(new FilterHolder(shiroFilter), ANY_PATH,
> getAllDispatcherTypes());
>
> Factory<SecurityManager> factory = new
> IniSecurityManagerFactory(ini);
> SecurityManager securityManager = factory.getInstance();
> SecurityUtils.setSecurityManager(securityManager);
> }
>
> Any ideas?
>
> Thanks
> Gregor