Class AntPathMatcher
java.lang.Object
org.apache.shiro.util.AntPathMatcher
- All Implemented Interfaces:
PatternMatcher
PathMatcher implementation for Ant-style path patterns. Examples are provided below.
Part of this mapping code has been kindly borrowed from Apache Ant.
The mapping matches URLs using the following rules:
- ? matches one character
- * matches zero or more characters
- ** matches zero or more 'directories' in a path
Some examples:
com/t?st.jsp- matchescom/test.jspbut alsocom/tast.jsporcom/txst.jspcom/*.jsp- matches all.jspfiles in thecomdirectorycom/**/test.jsp- matches alltest.jspfiles underneath thecompathorg/apache/shiro/**/*.jsp- matches all.jspfiles underneath theorg/apache/shiropathorg/**/servlet/bla.jsp- matchesorg/apache/shiro/servlet/bla.jspbut alsoorg/apache/shiro/testing/servlet/bla.jspandorg/servlet/bla.jsp
N.B.: This class was borrowed (with much appreciation) from the Spring Framework with modifications. We didn't want to reinvent the wheel of great work they've done, but also didn't want to force every Shiro user to depend on Spring
As per the Apache 2.0 license, the original copyright notice and all author and copyright information have remained in tact.
- Since:
- 16.07.2003
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanActually match the givenpathagainst the givenpattern.extractPathWithinPattern(String pattern, String path) Given a pattern and a full path, determine the pattern-mapped part.booleanChecks ifpathis a pattern (i.e.booleanbooleanReturnstrueif the givensourcematches the specifiedpattern,falseotherwise.booleanmatchStart(String pattern, String path) voidsetPathSeparator(String pathSeparator) Set the path separator to use for pattern parsing.
-
Field Details
-
DEFAULT_PATH_SEPARATOR
-
-
Constructor Details
-
AntPathMatcher
public AntPathMatcher()
-
-
Method Details
-
setPathSeparator
Set the path separator to use for pattern parsing. Default is "/", as in Ant. -
isPattern
-
matches
Description copied from interface:PatternMatcherReturnstrueif the givensourcematches the specifiedpattern,falseotherwise.- Specified by:
matchesin interfacePatternMatcher- Parameters:
pattern- the pattern to match againstsource- the source to match- Returns:
trueif the givensourcematches the specifiedpattern,falseotherwise.
-
match
-
matchStart
-
doMatch
Actually match the givenpathagainst the givenpattern.- Parameters:
pattern- the pattern to match againstpath- the path String to testfullMatch- whether a full pattern match is required (else a pattern match as far as the given base path goes is sufficient)- Returns:
trueif the suppliedpathmatched,falseif it didn't
-
extractPathWithinPattern
Given a pattern and a full path, determine the pattern-mapped part.For example:
- '
/docs/cvs/commit.html' and '/docs/cvs/commit.html-> '' - '
/docs/*' and '/docs/cvs/commit-> 'cvs/commit' - '
/docs/cvs/*.html' and '/docs/cvs/commit.html-> 'commit.html' - '
/docs/**' and '/docs/cvs/commit-> 'cvs/commit' - '
/docs/**\/*.html' and '/docs/cvs/commit.html-> 'cvs/commit.html' - '
/*.html' and '/docs/cvs/commit.html-> 'docs/cvs/commit.html' - '
*.html' and '/docs/cvs/commit.html-> '/docs/cvs/commit.html' - '
*' and '/docs/cvs/commit.html-> '/docs/cvs/commit.html'
Assumes that
match(java.lang.String, java.lang.String)returnstruefor 'pattern' and 'path', but does not enforce this. - '
-