Thanks for your detailed reply Les - I will dig deeper into this and follow
your suggestions. (I'll probably return with a few more questions...)

/Bengt

2012/1/4 Les Hazlewood <[email protected]>

> Hi Bengt,
>
> I can't speak to how to use Blueprint as my OSGi skills are rather rusty.
>
> With regards to configuring Shiro programmatically, this is pretty
> easy - mostly everything in Shiro is configurable via getters/setters
> - you can instantiate and set whatever implementations you wish.
>
> Now, if my memory serves me correctly, Blueprint is more or less
> Spring-style configuration for beans in an OSGi module, no?  If so,
> wouldn't you configure Shiro beans as Spring beans similar to what is
> described here:  http://shiro.apache.org/spring.html ?
>
> Now, when it comes to custom filters, and filter chain definitions,
> The ShiroFilter uses something called a FilterChainResolver at runtime
> (input: request, response, servletContainerFilterChain; output: the
> FilterChain to execute).  A FilterChainResolver relies internally on a
> FilterChainManager to determine which chain should be executed based
> on the inbound request.  At startup, the FilterChainManager reads the
> filterChainDefinitions (i.e. each line in the [urls] section) and
> creates a corresponding FilterChain.
>
> In the Spring support, there is a
> org.apache.shiro.spring.web.ShiroFilterFactoryBean that, based on the
> filter chain definitions, will create the FilterChainManager, inject
> it into a FilterChainResolver instance, and make the resolver
> accessible to a new ShiroFilter instance.
>
> You can see the ShiroFilterFactoryBean source code for how it does
> this if you need to gleam ideas:
>
>
> http://svn.apache.org/repos/asf/shiro/trunk/support/spring/src/main/java/org/apache/shiro/spring/web/ShiroFilterFactoryBean.java
>
> So I'm assuming in Blueprint, you need to do a few things:
>
> 1.  Configure a SecurityManager instance
> 2.  Configure any number of Filter instances
> 3.  Configure a FilterChainManager, referencing the filters in #2
> 4.  Configure a PathMatchingFilterChainResolver that uses the
> FilterChainManager in #3
> 5.  Configure a ShiroFilter instance that uses the FilterChainResolver in
> #4.
> 6.  Make sure that ShiroFilter instance filters all web requests
> served by your OSGi-based web application.  Usually this filter is at
> the very front of (or very near the front of) all other filters in the
> web application.
>
> Feel free to ask any other questions - I'm happy to help.
>
> Cheers,
>
> Les
>
> On Fri, Dec 30, 2011 at 9:02 AM, Bengt Rodehav <[email protected]> wrote:
> > I'm using Shiro 1.1.0 in an OSGi environment (Apache Karaf on Apache
> Felix).
> >
> > I posted a question recently about configuring Shiro using Blueprint in
> an
> > OSGi environment. I got no response to that question. I then thought
> that if
> > I could first figure out how to configure Shiro programmatically then
> maybe
> > I can figure out the rest myself.
> >
> > At first it seemed pretty easy but then I came to my custom filters.
> When I
> > used a shiro.ini file, I gave my custom filter a name that I could then
> > refer to in the [urls] section. I can't figure out how to do this when I
> > create my filter programmatically.
> >
> > Can anyone give me a hint regarding this? I appreciate any help,
> >
> > /Bengt
>

Reply via email to