Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
0c110a1e
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
3
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0c110a1e
编写于
11月 22, 2010
作者:
M
mullan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6995424: Eliminate dependency to a deprecated API com.sun.security.auth.PolicyFile
Reviewed-by: mchung
上级
d33bc88e
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
55 addition
and
33 deletion
+55
-33
src/share/classes/javax/security/auth/Policy.java
src/share/classes/javax/security/auth/Policy.java
+49
-0
src/share/classes/javax/security/auth/SubjectDomainCombiner.java
...re/classes/javax/security/auth/SubjectDomainCombiner.java
+6
-33
未找到文件。
src/share/classes/javax/security/auth/Policy.java
浏览文件 @
0c110a1e
...
...
@@ -25,6 +25,9 @@
package
javax.security.auth
;
import
java.security.Security
;
import
sun.security.util.Debug
;
/**
* <p> This is an abstract class for representing the system policy for
* Subject-based authorization. A subclass implementation
...
...
@@ -159,6 +162,10 @@ public abstract class Policy {
private
static
Policy
policy
;
private
static
ClassLoader
contextClassLoader
;
// true if a custom (not com.sun.security.auth.PolicyFile) system-wide
// policy object is set
private
static
boolean
isCustomPolicy
;
static
{
contextClassLoader
=
java
.
security
.
AccessController
.
doPrivileged
(
new
java
.
security
.
PrivilegedAction
<
ClassLoader
>()
{
...
...
@@ -234,6 +241,8 @@ public abstract class Policy {
contextClassLoader
).
newInstance
();
}
});
isCustomPolicy
=
!
finalClass
.
equals
(
"com.sun.security.auth.PolicyFile"
);
}
catch
(
Exception
e
)
{
throw
new
SecurityException
(
sun
.
security
.
util
.
ResourcesMgr
.
getString
...
...
@@ -265,6 +274,46 @@ public abstract class Policy {
java
.
lang
.
SecurityManager
sm
=
System
.
getSecurityManager
();
if
(
sm
!=
null
)
sm
.
checkPermission
(
new
AuthPermission
(
"setPolicy"
));
Policy
.
policy
=
policy
;
// all non-null policy objects are assumed to be custom
isCustomPolicy
=
policy
!=
null
?
true
:
false
;
}
/**
* Returns true if a custom (not com.sun.security.auth.PolicyFile)
* system-wide policy object has been set or installed. This method is
* called by SubjectDomainCombiner to provide backwards compatibility for
* developers that provide their own javax.security.auth.Policy
* implementations.
*
* @return true if a custom (not com.sun.security.auth.PolicyFile)
* system-wide policy object has been set; false otherwise
*/
static
boolean
isCustomPolicySet
(
Debug
debug
)
{
if
(
policy
!=
null
)
{
if
(
debug
!=
null
&&
isCustomPolicy
)
{
debug
.
println
(
"Providing backwards compatibility for "
+
"javax.security.auth.policy implementation: "
+
policy
.
toString
());
}
return
isCustomPolicy
;
}
// check if custom policy has been set using auth.policy.provider prop
String
policyClass
=
java
.
security
.
AccessController
.
doPrivileged
(
new
java
.
security
.
PrivilegedAction
<
String
>()
{
public
String
run
()
{
return
Security
.
getProperty
(
"auth.policy.provider"
);
}
});
if
(
policyClass
!=
null
&&
!
policyClass
.
equals
(
"com.sun.security.auth.PolicyFile"
))
{
if
(
debug
!=
null
)
{
debug
.
println
(
"Providing backwards compatibility for "
+
"javax.security.auth.policy implementation: "
+
policyClass
);
}
return
true
;
}
return
false
;
}
/**
...
...
src/share/classes/javax/security/auth/SubjectDomainCombiner.java
浏览文件 @
0c110a1e
/*
* Copyright (c) 1999, 20
07
, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1999, 20
10
, 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
...
...
@@ -26,8 +26,6 @@
package
javax.security.auth
;
import
java.security.AccessController
;
import
java.security.AccessControlContext
;
import
java.security.AllPermission
;
import
java.security.Permission
;
import
java.security.Permissions
;
import
java.security.PermissionCollection
;
...
...
@@ -35,10 +33,8 @@ import java.security.Policy;
import
java.security.Principal
;
import
java.security.PrivilegedAction
;
import
java.security.ProtectionDomain
;
import
java.lang.ClassLoader
;
import
java.security.Security
;
import
java.util.Set
;
import
java.util.Iterator
;
import
java.util.WeakHashMap
;
import
java.lang.ref.WeakReference
;
...
...
@@ -61,7 +57,8 @@ public class SubjectDomainCombiner implements java.security.DomainCombiner {
"\t[SubjectDomainCombiner]"
);
// Note: check only at classloading time, not dynamically during combine()
private
static
final
boolean
useJavaxPolicy
=
compatPolicy
();
private
static
final
boolean
useJavaxPolicy
=
javax
.
security
.
auth
.
Policy
.
isCustomPolicySet
(
debug
);
// Relevant only when useJavaxPolicy is true
private
static
final
boolean
allowCaching
=
...
...
@@ -202,8 +199,8 @@ public class SubjectDomainCombiner implements java.security.DomainCombiner {
return
null
;
}
// maintain backwards compatibility for
people
who provide
// their own javax.security.auth.Policy implementations
// maintain backwards compatibility for
developers
who provide
// their own
custom
javax.security.auth.Policy implementations
if
(
useJavaxPolicy
)
{
return
combineJavaxPolicy
(
currentDomains
,
assignedDomains
);
}
...
...
@@ -476,8 +473,7 @@ public class SubjectDomainCombiner implements java.security.DomainCombiner {
String
s
=
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
String
>()
{
public
String
run
()
{
return
java
.
security
.
Security
.
getProperty
(
"cache.auth.policy"
);
return
Security
.
getProperty
(
"cache.auth.policy"
);
}
});
if
(
s
!=
null
)
{
...
...
@@ -488,29 +484,6 @@ public class SubjectDomainCombiner implements java.security.DomainCombiner {
return
true
;
}
// maintain backwards compatibility for people who provide
// their own javax.security.auth.Policy implementations
private
static
boolean
compatPolicy
()
{
javax
.
security
.
auth
.
Policy
javaxPolicy
=
AccessController
.
doPrivileged
(
new
PrivilegedAction
<
javax
.
security
.
auth
.
Policy
>()
{
public
javax
.
security
.
auth
.
Policy
run
()
{
return
javax
.
security
.
auth
.
Policy
.
getPolicy
();
}
});
if
(!(
javaxPolicy
instanceof
com
.
sun
.
security
.
auth
.
PolicyFile
))
{
if
(
debug
!=
null
)
{
debug
.
println
(
"Providing backwards compatibility for "
+
"javax.security.auth.policy implementation: "
+
javaxPolicy
.
toString
());
}
return
true
;
}
else
{
return
false
;
}
}
private
static
void
printInputDomains
(
ProtectionDomain
[]
currentDomains
,
ProtectionDomain
[]
assignedDomains
)
{
if
(
currentDomains
==
null
||
currentDomains
.
length
==
0
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录