Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
0f6f7e79
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看板
提交
0f6f7e79
编写于
3月 28, 2014
作者:
A
alitvinov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8032832: Applet/browser deadlocks, when IIS integrated authentication is used
Reviewed-by: chegar, weijun
上级
86ae0e97
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
2 deletion
+29
-2
src/share/classes/sun/net/www/protocol/http/NegotiateAuthentication.java
...es/sun/net/www/protocol/http/NegotiateAuthentication.java
+29
-2
未找到文件。
src/share/classes/sun/net/www/protocol/http/NegotiateAuthentication.java
浏览文件 @
0f6f7e79
/*
/*
* Copyright (c) 2005, 201
3
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2005, 201
4
, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
*
* This code is free software; you can redistribute it and/or modify it
* This code is free software; you can redistribute it and/or modify it
...
@@ -31,6 +31,7 @@ import java.net.Authenticator.RequestorType;
...
@@ -31,6 +31,7 @@ import java.net.Authenticator.RequestorType;
import
java.util.Base64
;
import
java.util.Base64
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
sun.net.www.HeaderParser
;
import
sun.net.www.HeaderParser
;
import
sun.util.logging.PlatformLogger
;
import
static
sun
.
net
.
www
.
protocol
.
http
.
AuthScheme
.
NEGOTIATE
;
import
static
sun
.
net
.
www
.
protocol
.
http
.
AuthScheme
.
NEGOTIATE
;
import
static
sun
.
net
.
www
.
protocol
.
http
.
AuthScheme
.
KERBEROS
;
import
static
sun
.
net
.
www
.
protocol
.
http
.
AuthScheme
.
KERBEROS
;
...
@@ -44,6 +45,7 @@ import static sun.net.www.protocol.http.AuthScheme.KERBEROS;
...
@@ -44,6 +45,7 @@ import static sun.net.www.protocol.http.AuthScheme.KERBEROS;
class
NegotiateAuthentication
extends
AuthenticationInfo
{
class
NegotiateAuthentication
extends
AuthenticationInfo
{
private
static
final
long
serialVersionUID
=
100L
;
private
static
final
long
serialVersionUID
=
100L
;
private
static
final
PlatformLogger
logger
=
HttpURLConnection
.
getHttpLogger
();
final
private
HttpCallerInfo
hci
;
final
private
HttpCallerInfo
hci
;
...
@@ -78,6 +80,31 @@ class NegotiateAuthentication extends AuthenticationInfo {
...
@@ -78,6 +80,31 @@ class NegotiateAuthentication extends AuthenticationInfo {
return
false
;
return
false
;
}
}
/**
* Find out if the HttpCallerInfo supports Negotiate protocol.
* @return true if supported
*/
public
static
boolean
isSupported
(
HttpCallerInfo
hci
)
{
ClassLoader
loader
=
null
;
try
{
loader
=
Thread
.
currentThread
().
getContextClassLoader
();
}
catch
(
SecurityException
se
)
{
if
(
logger
.
isLoggable
(
PlatformLogger
.
Level
.
FINER
))
{
logger
.
finer
(
"NegotiateAuthentication: "
+
"Attempt to get the context class loader failed - "
+
se
);
}
}
if
(
loader
!=
null
)
{
// Lock on the class loader instance to avoid the deadlock engaging
// the lock in "ClassLoader.loadClass(String, boolean)" method.
synchronized
(
loader
)
{
return
isSupportedImpl
(
hci
);
}
}
return
isSupportedImpl
(
hci
);
}
/**
/**
* Find out if the HttpCallerInfo supports Negotiate protocol. In order to
* Find out if the HttpCallerInfo supports Negotiate protocol. In order to
* find out yes or no, an initialization of a Negotiator object against it
* find out yes or no, an initialization of a Negotiator object against it
...
@@ -89,7 +116,7 @@ class NegotiateAuthentication extends AuthenticationInfo {
...
@@ -89,7 +116,7 @@ class NegotiateAuthentication extends AuthenticationInfo {
*
*
* @return true if supported
* @return true if supported
*/
*/
synchronized
public
static
boolean
isSupported
(
HttpCallerInfo
hci
)
{
private
static
synchronized
boolean
isSupportedImpl
(
HttpCallerInfo
hci
)
{
if
(
supported
==
null
)
{
if
(
supported
==
null
)
{
supported
=
new
HashMap
<
String
,
Boolean
>();
supported
=
new
HashMap
<
String
,
Boolean
>();
cache
=
new
HashMap
<
String
,
Negotiator
>();
cache
=
new
HashMap
<
String
,
Negotiator
>();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录