公共getpermissions PermissionCollection(java.security.protectiondomain PD)和保护范围有一个构造函数:
公众的保护范围(CodeSource CS,PermissionCollection权限,类装载器装载机,校长[校长]这两个API提供了用户查询的权限项目的主要政策手段。
@Deprecated public abstract class Policy extends Object
这是一个抽象类,用于表示基于主体的授权的系统策略。子类实现这个类指定一个主题为基础的访问控制提供了一种手段,Policy
。
一个Policy
对象可以被授予代码运行在以下方式Principal
权限集:
政策的政策。getpolicy();PermissionCollection烫发=政策。getpermissions(主体,CodeSource);的
Policy
对象参照当地的政策和收益和适当的
Permissions
对象权限授予校长与所提供的主题,准予通过提供CodeSource指定的代码。
一个Policy
包含以下信息。注意,这个例子只代表了默认Policy
实现语法。这个类的子类的实现可能实现的替代语法,可以从任何来源,如文件、数据库或服务器Policy
。
在Policy
每个条目表示一个授予入门。每个授予条目指定一个代码,代码签名,和校长三,以及授予的权限,三。
格兰特代码[“URL”],[“签名”]签署,主[ principal_class ]“principal_name“{许可permission_class [“target_name”][“permission_actions”][签署],“signername”;};代码库并签署组件的三名/值对是可选的。如果他们不存在,那么任何代码匹配,和任何人(包括未签名的代码)将匹配。例如,
格兰特代码“foo。com”,Signedby“foo”,主com.sun.security.auth.solarisprincipal“公爵”{许可java.io.filepermission”/家/公爵”,“读、写”;};这 授予输入指定代码“foo。com”、“foo”签署,并运行作为一个
SolarisPrincipal
的名字,公爵,有一
Permission
。这
Permission
允许执行代码的阅读目录中写入文件“/家/公爵”。
“跑”作为一种特殊的Principal
,代码调用Subject.doAs(subject, ...)
方法。在调用这个方法,代码运行所有与指定的Subject
相关原则。注意,这Policy
(在这Policy
授予权限)生效的发生给Subject.doAs
。
多个主体可能被列在一授予入门。在格兰特进入所有的校长必须提供Subject.doAs
,Subject
被授予指定权限的Subject
相关。
主com.sun.security.auth.solarisprincipal授予“公爵”,主com.sun.security.auth.solarisnumericuserprincipal”0“{许可java.io.filepermission”/家/公爵”,“读、写”;许可java.net.socketpermission“公爵。com”、“连接”;};此项补助任何代码运行为“公爵”和“0”的权限来读取和公爵的家目录写文件,以及权限进行连接”公爵。com”。
注意,非主要拨款的条目不在这Policy
允许。因此,授予条目,如:
格兰特代码“foo。com”,Signedby“foo”{许可java.io.filepermission“/tmp /划痕”、“读、写”;};被拒绝。这种许可必须在
java.security.Policy
默认Policy
实现可以通过设置的auth.policy.provider
安全属性的值所需的Policy
实现类的完全限定名称的改变。
security properties
Modifier | Constructor and Description |
---|---|
protected |
Policy()
过时的。
唯一的构造函数。
|
Modifier and Type | Method and Description |
---|---|
abstract PermissionCollection |
getPermissions(Subject subject, CodeSource cs)
过时的。
检索具有指定
CodeSource 授予相关权限的原则。
|
static Policy |
getPolicy()
过时的。
返回已安装的策略对象。
|
abstract void |
refresh()
过时的。
刷新和重新加载策略。
|
static void |
setPolicy(Policy policy)
过时的。
设置系统范围的策略对象。
|
public static Policy getPolicy()
AuthPermission("getPolicy")
许可
SecurityManager.checkPermission
确保调用者权限让政策对象。
null
。
SecurityException
-如果当前线程没有权限让政策对象。
setPolicy(javax.security.auth.Policy)
public static void setPolicy(Policy policy)
AuthPermission("setPolicy")
许可
SecurityManager.checkPermission
确保调用方具有权限设置的政策。
policy
-新制度的政策目标。
SecurityException
-如果当前线程没有权限设置的政策。
getPolicy()
public abstract PermissionCollection getPermissions(Subject subject, CodeSource cs)
CodeSource
授予相关的权限
校长。
subject
-
Subject
的相关原理,结合所提供的
CodeSource
,确定由该方法返回的权限。这个参数可以
null
。
cs
-代码指定的
CodeSource
决定,结合所提供的
Subject
,此方法返回的权限。这个参数可以
null
。
Subject
和代码中指定的设置主题和反恐精英参数。
public abstract void refresh()
此方法使此对象刷新/重新加载其当前策略。这是依赖于实现的。例如,如果政策目标是存储在一个文件中,调用refresh
会导致文件被重新读取。
SecurityException
如果调用者没有权限更新政策。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.