Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
5c463a16
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5c463a16
编写于
3月 13, 2015
作者:
R
Rossen Stoyanchev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Move X-Forwarded-* tests to UriComponentsBuilderTests
上级
0280a2a9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
151 addition
and
82 deletion
+151
-82
spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java
...g/springframework/web/util/UriComponentsBuilderTests.java
+129
-3
spring-webmvc/src/test/java/org/springframework/web/servlet/support/ServletUriComponentsBuilderTests.java
...web/servlet/support/ServletUriComponentsBuilderTests.java
+22
-79
未找到文件。
spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java
浏览文件 @
5c463a16
...
...
@@ -32,6 +32,7 @@ import java.util.Map;
import
org.junit.Test
;
import
org.springframework.http.HttpRequest
;
import
org.springframework.http.server.ServletServerHttpRequest
;
import
org.springframework.mock.web.test.MockHttpServletRequest
;
import
org.springframework.util.LinkedMultiValueMap
;
...
...
@@ -237,8 +238,6 @@ public class UriComponentsBuilderTests {
assertEquals
(
"bar@baz"
,
result
.
getQueryParams
().
getFirst
(
"foo"
));
}
// Also see X-Forwarded-* related tests in ServletUriComponentsBuilderTests
@Test
public
void
fromHttpRequest
()
throws
URISyntaxException
{
MockHttpServletRequest
request
=
new
MockHttpServletRequest
();
...
...
@@ -269,13 +268,140 @@ public class UriComponentsBuilderTests {
request
.
setServerPort
(
80
);
request
.
setRequestURI
(
"/rest/mobile/users/1"
);
UriComponents
result
=
UriComponentsBuilder
.
fromHttpRequest
(
new
ServletServerHttpRequest
(
request
)).
build
();
HttpRequest
httpRequest
=
new
ServletServerHttpRequest
(
request
);
UriComponents
result
=
UriComponentsBuilder
.
fromHttpRequest
(
httpRequest
).
build
();
assertEquals
(
"https"
,
result
.
getScheme
());
assertEquals
(
"84.198.58.199"
,
result
.
getHost
());
assertEquals
(-
1
,
result
.
getPort
());
assertEquals
(
"/rest/mobile/users/1"
,
result
.
getPath
());
}
@Test
public
void
fromHttpRequestWithForwardedHost
()
{
MockHttpServletRequest
request
=
new
MockHttpServletRequest
();
request
.
setScheme
(
"http"
);
request
.
setServerName
(
"localhost"
);
request
.
setServerPort
(-
1
);
request
.
setRequestURI
(
"/mvc-showcase"
);
request
.
addHeader
(
"X-Forwarded-Host"
,
"anotherHost"
);
HttpRequest
httpRequest
=
new
ServletServerHttpRequest
(
request
);
UriComponents
result
=
UriComponentsBuilder
.
fromHttpRequest
(
httpRequest
).
build
();
assertEquals
(
"http://anotherHost/mvc-showcase"
,
result
.
toString
());
}
// SPR-10701
@Test
public
void
fromHttpRequestWithForwardedHostIncludingPort
()
{
MockHttpServletRequest
request
=
new
MockHttpServletRequest
();
request
.
setScheme
(
"http"
);
request
.
setServerName
(
"localhost"
);
request
.
setServerPort
(-
1
);
request
.
setRequestURI
(
"/mvc-showcase"
);
request
.
addHeader
(
"X-Forwarded-Host"
,
"webtest.foo.bar.com:443"
);
HttpRequest
httpRequest
=
new
ServletServerHttpRequest
(
request
);
UriComponents
result
=
UriComponentsBuilder
.
fromHttpRequest
(
httpRequest
).
build
();
assertEquals
(
"webtest.foo.bar.com"
,
result
.
getHost
());
assertEquals
(
443
,
result
.
getPort
());
}
// SPR-11140
@Test
public
void
fromHttpRequestWithForwardedHostMultiValuedHeader
()
{
MockHttpServletRequest
request
=
new
MockHttpServletRequest
();
request
.
setScheme
(
"http"
);
request
.
setServerName
(
"localhost"
);
request
.
setServerPort
(-
1
);
request
.
addHeader
(
"X-Forwarded-Host"
,
"a.example.org, b.example.org, c.example.org"
);
HttpRequest
httpRequest
=
new
ServletServerHttpRequest
(
request
);
UriComponents
result
=
UriComponentsBuilder
.
fromHttpRequest
(
httpRequest
).
build
();
assertEquals
(
"a.example.org"
,
result
.
getHost
());
assertEquals
(-
1
,
result
.
getPort
());
}
// SPR-11855
@Test
public
void
fromHttpRequestWithForwardedHostAndPort
()
{
MockHttpServletRequest
request
=
new
MockHttpServletRequest
();
request
.
setScheme
(
"http"
);
request
.
setServerName
(
"localhost"
);
request
.
setServerPort
(
8080
);
request
.
addHeader
(
"X-Forwarded-Host"
,
"foobarhost"
);
request
.
addHeader
(
"X-Forwarded-Port"
,
"9090"
);
HttpRequest
httpRequest
=
new
ServletServerHttpRequest
(
request
);
UriComponents
result
=
UriComponentsBuilder
.
fromHttpRequest
(
httpRequest
).
build
();
assertEquals
(
"foobarhost"
,
result
.
getHost
());
assertEquals
(
9090
,
result
.
getPort
());
}
// SPR-11872
@Test
public
void
fromHttpRequestWithForwardedHostWithDefaultPort
()
{
MockHttpServletRequest
request
=
new
MockHttpServletRequest
();
request
.
setScheme
(
"http"
);
request
.
setServerName
(
"localhost"
);
request
.
setServerPort
(
10080
);
request
.
addHeader
(
"X-Forwarded-Host"
,
"example.org"
);
HttpRequest
httpRequest
=
new
ServletServerHttpRequest
(
request
);
UriComponents
result
=
UriComponentsBuilder
.
fromHttpRequest
(
httpRequest
).
build
();
assertEquals
(
"example.org"
,
result
.
getHost
());
assertEquals
(-
1
,
result
.
getPort
());
}
@Test
public
void
fromHttpRequestWithForwardedHostWithForwardedScheme
()
{
MockHttpServletRequest
request
=
new
MockHttpServletRequest
();
request
.
setScheme
(
"http"
);
request
.
setServerName
(
"localhost"
);
request
.
setServerPort
(
10080
);
request
.
addHeader
(
"X-Forwarded-Host"
,
"example.org"
);
request
.
addHeader
(
"X-Forwarded-Proto"
,
"https"
);
HttpRequest
httpRequest
=
new
ServletServerHttpRequest
(
request
);
UriComponents
result
=
UriComponentsBuilder
.
fromHttpRequest
(
httpRequest
).
build
();
assertEquals
(
"example.org"
,
result
.
getHost
());
assertEquals
(
"https"
,
result
.
getScheme
());
assertEquals
(-
1
,
result
.
getPort
());
}
// SPR-12771
@Test
public
void
fromHttpRequestWithForwardedProtoAndDefaultPort
()
{
MockHttpServletRequest
request
=
new
MockHttpServletRequest
();
request
.
setScheme
(
"http"
);
request
.
setServerName
(
"localhost"
);
request
.
setServerPort
(
80
);
request
.
setRequestURI
(
"/mvc-showcase"
);
request
.
addHeader
(
"X-Forwarded-Proto"
,
"https"
);
request
.
addHeader
(
"X-Forwarded-Host"
,
"84.198.58.199"
);
request
.
addHeader
(
"X-Forwarded-Port"
,
"443"
);
HttpRequest
httpRequest
=
new
ServletServerHttpRequest
(
request
);
UriComponents
result
=
UriComponentsBuilder
.
fromHttpRequest
(
httpRequest
).
build
();
assertEquals
(
"https://84.198.58.199/mvc-showcase"
,
result
.
toString
());
}
@Test
public
void
path
()
throws
URISyntaxException
{
UriComponentsBuilder
builder
=
UriComponentsBuilder
.
fromPath
(
"/foo/bar"
);
...
...
spring-webmvc/src/test/java/org/springframework/web/servlet/support/ServletUriComponentsBuilderTests.java
浏览文件 @
5c463a16
...
...
@@ -21,10 +21,14 @@ import static org.junit.Assert.assertNull;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.springframework.http.HttpRequest
;
import
org.springframework.http.server.ServletServerHttpRequest
;
import
org.springframework.mock.web.test.MockHttpServletRequest
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
org.springframework.web.util.UriComponents
;
import
org.springframework.web.util.UriComponentsBuilder
;
/**
* Unit tests for
...
...
@@ -78,92 +82,31 @@ public class ServletUriComponentsBuilderTests {
assertEquals
(
"https://localhost:9043/mvc-showcase"
,
result
);
}
@Test
public
void
fromRequestUri
()
{
this
.
request
.
setRequestURI
(
"/mvc-showcase/data/param"
);
this
.
request
.
setQueryString
(
"foo=123"
);
String
result
=
ServletUriComponentsBuilder
.
fromRequestUri
(
this
.
request
).
build
().
toUriString
();
assertEquals
(
"http://localhost/mvc-showcase/data/param"
,
result
);
}
@Test
public
void
fromRequestWithForwardedHost
()
{
this
.
request
.
addHeader
(
"X-Forwarded-Host"
,
"anotherHost"
);
this
.
request
.
setRequestURI
(
"/mvc-showcase/data/param"
);
this
.
request
.
setQueryString
(
"foo=123"
);
String
result
=
ServletUriComponentsBuilder
.
fromRequest
(
this
.
request
).
build
().
toUriString
();
assertEquals
(
"http://anotherHost/mvc-showcase/data/param?foo=123"
,
result
);
}
// SPR-10701
@Test
public
void
fromRequestWithForwardedHostIncludingPort
()
{
this
.
request
.
addHeader
(
"X-Forwarded-Host"
,
"webtest.foo.bar.com:443"
);
this
.
request
.
setRequestURI
(
"/mvc-showcase/data/param"
);
this
.
request
.
setQueryString
(
"foo=123"
);
UriComponents
result
=
ServletUriComponentsBuilder
.
fromRequest
(
this
.
request
).
build
();
assertEquals
(
"webtest.foo.bar.com"
,
result
.
getHost
());
assertEquals
(
443
,
result
.
getPort
());
}
// SPR-11140
@Test
public
void
fromRequestWithForwardedHostMultiValuedHeader
()
{
this
.
request
.
addHeader
(
"X-Forwarded-Host"
,
"a.example.org, b.example.org, c.example.org"
);
assertEquals
(
"a.example.org"
,
ServletUriComponentsBuilder
.
fromRequest
(
this
.
request
).
build
().
getHost
());
}
// SPR-11855
// Most X-Forwarded-* tests in UriComponentsBuilderTests
@Test
public
void
fromRequestWithForwardedHostAndPort
()
{
this
.
request
.
addHeader
(
"X-Forwarded-Host"
,
"foobarhost"
);
this
.
request
.
addHeader
(
"X-Forwarded-Port"
,
"9090"
);
this
.
request
.
setServerPort
(
8080
);
UriComponents
uriComponents
=
ServletUriComponentsBuilder
.
fromRequest
(
this
.
request
).
build
();
assertEquals
(
"foobarhost"
,
uriComponents
.
getHost
());
assertEquals
(
9090
,
uriComponents
.
getPort
());
}
// SPR-11872
@Test
public
void
fromRequestWithForwardedHostWithDefaultPort
()
{
this
.
request
.
setServerPort
(
10080
);
this
.
request
.
addHeader
(
"X-Forwarded-Host"
,
"example.org"
);
UriComponents
result
=
ServletUriComponentsBuilder
.
fromRequest
(
this
.
request
).
build
();
assertEquals
(
"example.org"
,
result
.
getHost
());
assertEquals
(
"should have used the default port of the forwarded request"
,
-
1
,
result
.
getPort
());
}
@Test
public
void
fromRequestWithForwardedHostWithForwardedScheme
()
{
this
.
request
.
setServerPort
(
10080
);
this
.
request
.
addHeader
(
"X-Forwarded-Proto"
,
"https"
);
this
.
request
.
addHeader
(
"X-Forwarded-Host"
,
"example.org"
);
UriComponents
result
=
ServletUriComponentsBuilder
.
fromRequest
(
this
.
request
).
build
();
MockHttpServletRequest
request
=
new
MockHttpServletRequest
();
request
.
setScheme
(
"http"
);
request
.
setServerName
(
"localhost"
);
request
.
setServerPort
(
80
);
request
.
setRequestURI
(
"/mvc-showcase"
);
request
.
addHeader
(
"X-Forwarded-Proto"
,
"https"
);
request
.
addHeader
(
"X-Forwarded-Host"
,
"84.198.58.199"
);
request
.
addHeader
(
"X-Forwarded-Port"
,
"443"
);
HttpRequest
httpRequest
=
new
ServletServerHttpRequest
(
request
);
UriComponents
result
=
UriComponentsBuilder
.
fromHttpRequest
(
httpRequest
).
build
();
assertEquals
(
"example.org"
,
result
.
getHost
());
assertEquals
(
"should have derived scheme from header"
,
"https"
,
result
.
getScheme
());
assertEquals
(
"should have used the default port of the forwarded request"
,
-
1
,
result
.
getPort
());
assertEquals
(
"https://84.198.58.199/mvc-showcase"
,
result
.
toString
());
}
// SPR-12771
@Test
public
void
fromRequestWithForwardedProtoAndDefaultPort
()
{
this
.
request
.
addHeader
(
"X-Forwarded-Proto"
,
"https"
);
this
.
request
.
addHeader
(
"X-Forwarded-Host"
,
"84.198.58.199"
);
this
.
request
.
addHeader
(
"X-Forwarded-Port"
,
"443"
);
this
.
request
.
setServerPort
(
80
);
UriComponents
result
=
ServletUriComponentsBuilder
.
fromRequest
(
this
.
request
).
build
();
assertEquals
(
"https://84.198.58.199/mvc-showcase"
,
result
.
toString
());
public
void
fromRequestUri
()
{
this
.
request
.
setRequestURI
(
"/mvc-showcase/data/param"
);
this
.
request
.
setQueryString
(
"foo=123"
);
String
result
=
ServletUriComponentsBuilder
.
fromRequestUri
(
this
.
request
).
build
().
toUriString
();
assertEquals
(
"http://localhost/mvc-showcase/data/param"
,
result
);
}
@Test
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录