protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {

        if (this.appliedPaths == null || this.appliedPaths.isEmpty()) {
            if (LOGGER.isTraceEnabled()) {
                LOGGER.trace("appliedPaths property is null or empty.  This Filter will passthrough immediately.");
            }
            return true;
        }

        for (String path : this.appliedPaths.keySet()) {
            // If the path does match, then pass on to the subclass implementation for specific checks
            //(first match 'wins'):
            if (pathsMatch(path, request)) {
                LOGGER.trace("Current requestURI matches pattern '{}'.  Determining filter chain execution...", path);
                Object config = this.appliedPaths.get(path);
                return isFilterChainContinued(request, response, path, config);
            }
        }

        //no path matched, allow the request to go through:
        return true;
    }
Implementation that handles path-matching behavior before a request is evaluated.  If the path matches and
the filter
{@link #isEnabled(javax.servlet.ServletRequest, javax.servlet.ServletResponse, String, Object) isEnabled} for
that path/config, the request will be allowed through via the result from
{@link #onPreHandle(javax.servlet.ServletRequest, javax.servlet.ServletResponse, Object) onPreHandle}.  If the
path does not match or the filter is not enabled for that path, this filter will allow passthrough immediately
to allow the {@code FilterChain} to continue executing.
<p/>
In order to retain path-matching functionality, subclasses should not override this method if at all
possible, and instead override
{@link #onPreHandle(javax.servlet.ServletRequest, javax.servlet.ServletResponse, Object) onPreHandle} instead.

@param request  the incoming ServletRequest
@param response the outgoing ServletResponse
@return {@code true} if the filter chain is allowed to continue to execute, {@code false} if a subclass has
handled the request explicitly.
@throws Exception if an error occurs
web/src/main/java/org/apache/shiro/web/filter/PathMatchingFilter.java