Fixes unicode url-rewrite
Signed-off-by: Jens Mallien <108389225+jensmatw@users.noreply.github.com>
This commit is contained in:
committed by
Jens Mallien
parent
ea0c5ef3d2
commit
367cb80db9
@@ -327,7 +327,7 @@ public abstract class BeforeFilterFunctions {
|
||||
String path = request.uri().getPath();
|
||||
String newPath = pattern.matcher(path).replaceAll(normalizedReplacement);
|
||||
|
||||
URI rewrittenUri = UriComponentsBuilder.fromUri(request.uri()).replacePath(newPath).build().toUri();
|
||||
URI rewrittenUri = UriComponentsBuilder.fromUri(request.uri()).replacePath(newPath).encode().build().toUri();
|
||||
|
||||
ServerRequest modified = ServerRequest.from(request).uri(rewrittenUri).build();
|
||||
|
||||
|
||||
@@ -55,4 +55,28 @@ public class BeforeFilterFunctionsTests {
|
||||
assertThat(modified.uri().getRawPath()).isEqualTo("/modified/path/with%20spaces");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void rewritePathWithEnDash() {
|
||||
MockHttpServletRequest servletRequest = MockMvcRequestBuilders.get("http://localhost/get/path/with–en–dashes")
|
||||
.buildRequest(null);
|
||||
|
||||
ServerRequest request = ServerRequest.create(servletRequest, Collections.emptyList());
|
||||
|
||||
ServerRequest modified = BeforeFilterFunctions.rewritePath("get", "modified").apply(request);
|
||||
|
||||
assertThat(modified.uri().getRawPath()).isEqualTo("/modified/path/with%E2%80%93en%E2%80%93dashes");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void rewritePathWithEnDashAndSpace() {
|
||||
MockHttpServletRequest servletRequest = MockMvcRequestBuilders.get("http://localhost/get/path/with–en–dashes and spaces")
|
||||
.buildRequest(null);
|
||||
|
||||
ServerRequest request = ServerRequest.create(servletRequest, Collections.emptyList());
|
||||
|
||||
ServerRequest modified = BeforeFilterFunctions.rewritePath("get", "modified").apply(request);
|
||||
|
||||
assertThat(modified.uri().getRawPath()).isEqualTo("/modified/path/with%E2%80%93en%E2%80%93dashes%20and%20spaces");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user