Thanks Barry. Been looking into it since I saw your report and there's
a lot of stuff that is rotten there. First of all, initializing
IniShiroFilter, creating the IniFilterChainResolverFactory, setting
the FilterChainResolver and instantiating the default filters are all
strongly coupled together so there's no easy way to override the
default behavior. PathMatchingFilterChainResolver allows setting a
different PatternMatcher but a PathMatchingFilter doesn't and worse
yet, they are using different pattern matchers.

Perhaps we could patch it together one way or another to allow case
insensitive processing, but we might just as well fix it properly.
Considering that a filter would only need to carry around one
attribute, it's configuration, it'd make it perform far better and
greatly simplify processing the filter chains if we'd create separate
instances of the same filter for each filter chain rather than trying
to use the same filter in different chains. I'll open an issue
accordingly.

I'll fix the tapestry-security library separately with an ugly but
small and efficient hack. I've been toying with the idea of just
rewriting the request processing part and the filters for simplicity
and to make it align better with Tapestry, but I'll save that for
later.

Kalle


On Fri, Feb 4, 2011 at 1:16 PM, Barry Books <[email protected]> wrote:
> I'd like to change Shiro to do case insensitive matches on urls. I've
> figured out how to override the matching in authc by creating a filter
> and overriding the pathsmatch method it appears I also need to
> override whatever calls the filter in the first place. I think that's
> the PathMatchingFilter but I can't figure out how to plug a different
> one in.
>
>
> I'm trying to use Shiro with Tapestry and the problem is Tapestry will
> send /admin, /Admin, /admiN etc all to the same place. I'd like to
> match them all with
>
> [urls]
> /admin/** = authc, roles[administrator]
>
> but that config only handles /admin
>
> Thanks
> Barry
>

Reply via email to