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 >
