classes extends AbstractFilterInvocationDefinitionSource will define useAntPath.if true ,it will use AntPathMatcher to compare the urls.
AntPathMatcher will first convert the url to array useing the DEFAULT_PATH_SEPARATOR("/"),then compare each elements in the array.
[code] String[] patDirs = StringUtils.tokenizeToStringArray(pattern, this.pathSeparator);
String[] strDirs = StringUtils.tokenizeToStringArray(str, this.pathSeparator);
while (patIdxStart <= patIdxEnd && strIdxStart <= strIdxEnd) {
String patDir = (String) patDirs[patIdxStart];
if (patDir.equals("**")) {
break;
}
if (!matchStrings(patDir, (String) strDirs[strIdxStart])) {
return false;
}
patIdxStart++;
strIdxStart++;
}
[/code]
it use *,?,/ as key symbol,so you should filter this symbols in the url.
AntPathMatcher will first convert the url to array useing the DEFAULT_PATH_SEPARATOR("/"),then compare each elements in the array.
[code] String[] patDirs = StringUtils.tokenizeToStringArray(pattern, this.pathSeparator);
String[] strDirs = StringUtils.tokenizeToStringArray(str, this.pathSeparator);
while (patIdxStart <= patIdxEnd && strIdxStart <= strIdxEnd) {
String patDir = (String) patDirs[patIdxStart];
if (patDir.equals("**")) {
break;
}
if (!matchStrings(patDir, (String) strDirs[strIdxStart])) {
return false;
}
patIdxStart++;
strIdxStart++;
}
[/code]
it use *,?,/ as key symbol,so you should filter this symbols in the url.