提交 e4c84ec7 编写于 作者: R Rossen Stoyanchev

Consistent default encoding in DefaultUriBuilderFactory

Issue: SPR-17465
上级 f5da737b
......@@ -228,16 +228,14 @@ public class DefaultUriBuilderFactory implements UriBuilderFactory {
}
private UriComponentsBuilder initUriComponentsBuilder(String uriTemplate) {
UriComponentsBuilder result;
if (StringUtils.isEmpty(uriTemplate)) {
return baseUri != null ? baseUri.cloneBuilder() : UriComponentsBuilder.newInstance();
result = baseUri != null ? baseUri.cloneBuilder() : UriComponentsBuilder.newInstance();
}
UriComponentsBuilder result;
if (baseUri != null) {
UriComponentsBuilder uricBuilder = UriComponentsBuilder.fromUriString(uriTemplate);
UriComponents uric = uricBuilder.build();
result = uric.getHost() == null ? baseUri.cloneBuilder().uriComponents(uric) : uricBuilder;
else if (baseUri != null) {
UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(uriTemplate);
UriComponents uri = builder.build();
result = uri.getHost() == null ? baseUri.cloneBuilder().uriComponents(uri) : builder;
}
else {
result = UriComponentsBuilder.fromUriString(uriTemplate);
......
......@@ -35,7 +35,14 @@ public class DefaultUriBuilderFactoryTests {
@Test
public void defaultSettings() {
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory();
URI uri = factory.uriString("/foo").pathSegment("{id}").build("a/b");
URI uri = factory.uriString("/foo/{id}").build("a/b");
assertEquals("/foo/a%2Fb", uri.toString());
}
@Test // SPR-17465
public void defaultSettingsWithBuilder() {
DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory();
URI uri = factory.builder().path("/foo/{id}").build("a/b");
assertEquals("/foo/a%2Fb", uri.toString());
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册