Add exception for version segments in URLs
This seems like a common enough segment and useful to not remove.
This commit is contained in:
parent
c84b4a2c71
commit
9fc5cf6a4b
|
@ -11,9 +11,9 @@ public class URLAsResourceName extends AbstractDecorator {
|
||||||
|
|
||||||
// Matches everything after the ? character.
|
// Matches everything after the ? character.
|
||||||
public static final Pattern QUERYSTRING = Pattern.compile("\\?.*$");
|
public static final Pattern QUERYSTRING = Pattern.compile("\\?.*$");
|
||||||
// Matches any path segments with numbers in them.
|
// Matches any path segments with numbers in them. (exception for versioning: "/v1/")
|
||||||
public static final Pattern PATH_MIXED_ALPHANUMERICS =
|
public static final Pattern PATH_MIXED_ALPHANUMERICS =
|
||||||
Pattern.compile("/(?:[^\\/\\d\\?]*[\\d]+[^\\/\\?]*)");
|
Pattern.compile("(?<=/)(?![vV]\\d{1,2}/)(?:[^\\/\\d\\?]*[\\d]+[^\\/\\?]*)");
|
||||||
|
|
||||||
public URLAsResourceName() {
|
public URLAsResourceName() {
|
||||||
super();
|
super();
|
||||||
|
@ -60,7 +60,7 @@ public class URLAsResourceName extends AbstractDecorator {
|
||||||
|
|
||||||
String norm = origin;
|
String norm = origin;
|
||||||
norm = QUERYSTRING.matcher(norm).replaceAll("");
|
norm = QUERYSTRING.matcher(norm).replaceAll("");
|
||||||
norm = PATH_MIXED_ALPHANUMERICS.matcher(norm).replaceAll("/?");
|
norm = PATH_MIXED_ALPHANUMERICS.matcher(norm).replaceAll("?");
|
||||||
|
|
||||||
return norm;
|
return norm;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,8 @@ class URLAsResourceNameTest extends Specification {
|
||||||
|
|
||||||
where:
|
where:
|
||||||
input | output
|
input | output
|
||||||
|
"/" | "/"
|
||||||
|
"/?asdf" | "/"
|
||||||
"/search" | "/search"
|
"/search" | "/search"
|
||||||
"/search?" | "/search"
|
"/search?" | "/search"
|
||||||
"/search?id=100&private=true" | "/search"
|
"/search?id=100&private=true" | "/search"
|
||||||
|
@ -52,10 +54,10 @@ class URLAsResourceNameTest extends Specification {
|
||||||
|
|
||||||
where:
|
where:
|
||||||
input | output
|
input | output
|
||||||
"/a1" | "/?"
|
"/a1/v2" | "/?/?"
|
||||||
"/1a" | "/?"
|
"/v3/1a" | "/v3/?"
|
||||||
"/abc/-1?" | "/abc/?"
|
"/V01/v9/abc/-1?" | "/V01/v9/abc/?"
|
||||||
"/ABC/a-1/b_2/c.3/d4d/5f/6" | "/ABC/?/?/?/?/?/?"
|
"/ABC/av-1/b_2/c.3/d4d/v5f/v699/7" | "/ABC/?/?/?/?/?/?/?"
|
||||||
"/user/asdf123/repository/01234567-9ABC-DEF0-1234" | "/user/?/repository/?"
|
"/user/asdf123/repository/01234567-9ABC-DEF0-1234" | "/user/?/repository/?"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue