public class PathMatchingFilterChainResolver extends Object implements FilterChainResolver
FilterChainResolver that resolves FilterChains based on url path
matching, as determined by a configurable PathMatcher.
This implementation functions by consulting a FilterChainManager for all configured filter chains (keyed
by configured path pattern). If an incoming Request path matches one of the configured path patterns (via
the PathMatcher, the corresponding configured FilterChain is returned.| Constructor and Description |
|---|
PathMatchingFilterChainResolver() |
PathMatchingFilterChainResolver(javax.servlet.FilterConfig filterConfig) |
| Modifier and Type | Method and Description |
|---|---|
javax.servlet.FilterChain |
getChain(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
javax.servlet.FilterChain originalChain)
Returns the filter chain that should be executed for the given request, or
null if the
original chain should be used. |
FilterChainManager |
getFilterChainManager() |
org.apache.shiro.util.PatternMatcher |
getPathMatcher()
Returns the
PatternMatcher used when determining if an incoming request's path
matches a configured filter chain. |
protected String |
getPathWithinApplication(javax.servlet.ServletRequest request)
Merely returns
WebUtils.
and can be overridden by subclasses for custom request-to-application-path resolution behavior. |
protected boolean |
pathMatches(String pattern,
String path)
Returns
true if an incoming request path (the path argument)
matches a configured filter chain path (the pattern argument), false otherwise. |
void |
setFilterChainManager(FilterChainManager filterChainManager) |
void |
setPathMatcher(org.apache.shiro.util.PatternMatcher pathMatcher)
Sets the
PatternMatcher used when determining if an incoming request's path
matches a configured filter chain. |
public PathMatchingFilterChainResolver()
public PathMatchingFilterChainResolver(javax.servlet.FilterConfig filterConfig)
public org.apache.shiro.util.PatternMatcher getPathMatcher()
PatternMatcher used when determining if an incoming request's path
matches a configured filter chain. Unless overridden, the
default implementation is an AntPathMatcher.PatternMatcher used when determining if an incoming request's path
matches a configured filter chain.public void setPathMatcher(org.apache.shiro.util.PatternMatcher pathMatcher)
PatternMatcher used when determining if an incoming request's path
matches a configured filter chain. Unless overridden, the
default implementation is an AntPathMatcher.pathMatcher - the PatternMatcher used when determining if an incoming request's path
matches a configured filter chain.public FilterChainManager getFilterChainManager()
public void setFilterChainManager(FilterChainManager filterChainManager)
public javax.servlet.FilterChain getChain(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
javax.servlet.FilterChain originalChain)
FilterChainResolvernull if the
original chain should be used.
This method allows a implementation to define arbitrary security Filter
chains for any given request or URL pattern.getChain in interface FilterChainResolverrequest - the incoming ServletRequestresponse - the outgoing ServletResponseoriginalChain - the original FilterChain intercepted by the ShiroFilter implementation.null if the
original chain should be used.protected boolean pathMatches(String pattern, String path)
true if an incoming request path (the path argument)
matches a configured filter chain path (the pattern argument), false otherwise.
Simply delegates to
getPathMatcher().matches(pattern,path).
Subclass implementors should think carefully before overriding this method, as typically a custom
PathMatcher should be configured for custom path matching behavior instead. Favor OO composition
rather than inheritance to limit your exposure to Shiro implementation details which may change over time.pattern - the pattern to match againstpath - the value to match with the specified patterntrue if the request path matches the specified filter chain url pattern,
false otherwise.protected String getPathWithinApplication(javax.servlet.ServletRequest request)
WebUtils.getPathWithinApplication(request)
and can be overridden by subclasses for custom request-to-application-path resolution behavior.request - the incoming ServletRequestCopyright © 2004–2023 The Apache Software Foundation. All rights reserved.