Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
LinuxSuRen
jenkins
提交
ddfa65fa
J
jenkins
项目概览
LinuxSuRen
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jenkins
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ddfa65fa
编写于
10月 02, 2013
作者:
I
Ian Hopkins
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[FIXED JENKINS-10675] use X-Forwarded-Proto if present
上级
ea85489a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
35 addition
and
1 deletion
+35
-1
core/src/main/java/jenkins/model/Jenkins.java
core/src/main/java/jenkins/model/Jenkins.java
+6
-1
core/src/test/java/jenkins/model/JenkinsGetRootUrlTest.java
core/src/test/java/jenkins/model/JenkinsGetRootUrlTest.java
+29
-0
未找到文件。
core/src/main/java/jenkins/model/Jenkins.java
浏览文件 @
ddfa65fa
...
...
@@ -1916,7 +1916,12 @@ public class Jenkins extends AbstractCIBase implements ModifiableTopLevelItemGro
public
String
getRootUrlFromRequest
()
{
StaplerRequest
req
=
Stapler
.
getCurrentRequest
();
StringBuilder
buf
=
new
StringBuilder
();
buf
.
append
(
req
.
getScheme
()+
"://"
);
String
scheme
=
req
.
getScheme
();
String
forwardedScheme
=
req
.
getHeader
(
"X-Forwarded-Proto"
);
if
(
forwardedScheme
!=
null
)
{
scheme
=
forwardedScheme
;
}
buf
.
append
(
scheme
+
"://"
);
buf
.
append
(
req
.
getServerName
());
if
(
req
.
getServerPort
()!=
80
)
buf
.
append
(
':'
).
append
(
req
.
getServerPort
());
...
...
core/src/test/java/jenkins/model/JenkinsGetRootUrlTest.java
浏览文件 @
ddfa65fa
...
...
@@ -102,6 +102,30 @@ public class JenkinsGetRootUrlTest {
accessing
(
"http://localhost:8080/"
);
rootUrlIs
(
"https://ci/jenkins/"
);
}
@Bug
(
10675
)
@Test
public
void
useForwardedProtoWhenPresent
()
{
configured
(
"https://ci/jenkins/"
);
// Without a forwarded protocol, it should use the request protocol
accessing
(
"http://ci/jenkins/"
);
rootUrlFromRequestIs
(
"http://ci/jenkins/"
);
// With a forwarded protocol, it should use the forwarded protocol
accessing
(
"http://ci/jenkins/"
);
withHeader
(
"X-Forwarded-Proto"
,
"https"
);
rootUrlFromRequestIs
(
"https://ci/jenkins/"
);
accessing
(
"https://ci/jenkins/"
);
withHeader
(
"X-Forwarded-Proto"
,
"http"
);
rootUrlFromRequestIs
(
"http://ci/jenkins/"
);
}
private
void
rootUrlFromRequestIs
(
final
String
expectedRootUrl
)
{
assertThat
(
jenkins
.
getRootUrlFromRequest
(),
equalTo
(
expectedRootUrl
));
}
private
void
rootUrlIs
(
final
String
expectedRootUrl
)
{
...
...
@@ -112,6 +136,11 @@ public class JenkinsGetRootUrlTest {
when
(
config
.
getUrl
()).
thenReturn
(
configuredHost
);
}
private
void
withHeader
(
String
name
,
String
value
)
{
final
StaplerRequest
req
=
Stapler
.
getCurrentRequest
();
when
(
req
.
getHeader
(
name
)).
thenReturn
(
value
);
}
private
void
accessing
(
final
String
realUrl
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录