Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
e22562ff
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e22562ff
编写于
7月 18, 2018
作者:
R
robm
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8196902: Better HTTP redirection support
Reviewed-by: michaelm
上级
a46cbbdb
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
52 addition
and
1 deletion
+52
-1
src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java
.../classes/sun/net/www/protocol/http/HttpURLConnection.java
+52
-1
test/lib/testlibrary/jdk/testlibrary/testkeys
test/lib/testlibrary/jdk/testlibrary/testkeys
+0
-0
未找到文件。
src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java
浏览文件 @
e22562ff
/*
* Copyright (c) 1995, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1995, 201
8
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -2686,6 +2686,8 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
// doesn't know about proxy.
useProxyResponseCode
=
true
;
}
else
{
final
URL
prevURL
=
url
;
// maintain previous headers, just change the name
// of the file we're getting
url
=
locUrl
;
...
...
@@ -2714,6 +2716,14 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
poster
=
null
;
if
(!
checkReuseConnection
())
connect
();
if
(!
sameDestination
(
prevURL
,
url
))
{
// Ensures pre-redirect user-set cookie will not be reset.
// CookieHandler, if any, will be queried to determine
// cookies for redirected URL, if any.
userCookies
=
null
;
userCookies2
=
null
;
}
}
else
{
if
(!
checkReuseConnection
())
connect
();
...
...
@@ -2736,11 +2746,52 @@ public class HttpURLConnection extends java.net.HttpURLConnection {
}
requests
.
set
(
"Host"
,
host
);
}
if
(!
sameDestination
(
prevURL
,
url
))
{
// Redirecting to a different destination will drop any
// security-sensitive headers, regardless of whether
// they are user-set or not. CookieHandler, if any, will be
// queried to determine cookies for redirected URL, if any.
userCookies
=
null
;
userCookies2
=
null
;
requests
.
remove
(
"Cookie"
);
requests
.
remove
(
"Cookie2"
);
requests
.
remove
(
"Authorization"
);
// check for preemptive authorization
AuthenticationInfo
sauth
=
AuthenticationInfo
.
getServerAuth
(
url
);
if
(
sauth
!=
null
&&
sauth
.
supportsPreemptiveAuthorization
()
)
{
// Sets "Authorization"
requests
.
setIfNotSet
(
sauth
.
getHeaderName
(),
sauth
.
getHeaderValue
(
url
,
method
));
currentServerCredentials
=
sauth
;
}
}
}
}
return
true
;
}
/* Returns true iff the given URLs have the same host and effective port. */
private
static
boolean
sameDestination
(
URL
firstURL
,
URL
secondURL
)
{
assert
firstURL
.
getProtocol
().
equalsIgnoreCase
(
secondURL
.
getProtocol
()):
"protocols not equal: "
+
firstURL
+
" - "
+
secondURL
;
if
(!
firstURL
.
getHost
().
equalsIgnoreCase
(
secondURL
.
getHost
()))
return
false
;
int
firstPort
=
firstURL
.
getPort
();
if
(
firstPort
==
-
1
)
firstPort
=
firstURL
.
getDefaultPort
();
int
secondPort
=
secondURL
.
getPort
();
if
(
secondPort
==
-
1
)
secondPort
=
secondURL
.
getDefaultPort
();
if
(
firstPort
!=
secondPort
)
return
false
;
return
true
;
}
/* dummy byte buffer for reading off socket prior to closing */
byte
[]
cdata
=
new
byte
[
128
];
...
...
test/lib/testlibrary/jdk/testlibrary/testkeys
0 → 100644
浏览文件 @
e22562ff
文件已添加
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录