Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在单个java线程中启用多个安全管理器_Java_Security - Fatal编程技术网

在单个java线程中启用多个安全管理器

在单个java线程中启用多个安全管理器,java,security,Java,Security,假设有一个java线程,其中加载了由多方提供的类。这些提供程序是否可以指定自己的安全管理器和策略s.t。它们可以限制这些提供程序之间的访问?您只能将一个SecurityManager设置为安全管理器 线程与Java中的安全性关系不大。对象在线程之间传递,因此使用基于线程的访问模型没有多大意义 在Java中,每个类都会被分配一个ProtectionDomain,从而获得一组权限(这些权限在某种意义上可能是“动态的”,但在大多数情况下,它实际上是常量)。当要求安全管理器检查权限时,它将委托给Acce

假设有一个java线程,其中加载了由多方提供的类。这些提供程序是否可以指定自己的安全管理器和策略s.t。它们可以限制这些提供程序之间的访问?

您只能将一个
SecurityManager
设置为安全管理器

线程与Java中的安全性关系不大。对象在线程之间传递,因此使用基于线程的访问模型没有多大意义


在Java中,每个类都会被分配一个
ProtectionDomain
,从而获得一组权限(这些权限在某种意义上可能是“动态的”,但在大多数情况下,它实际上是常量)。当要求安全管理器检查权限时,它将委托给
AccessController
,后者将检查堆栈上的每个活动
ProtectionDomain
。实际上,您需要将代码与多方隔离,但各方都可以拥有自己的
ProtectionDomain
,从而拥有权限。

@erickson是的,但
ProtectionDomain
中唯一重要的方法是
暗示
。如果您想知道
ProtectionDomain
是否应该允许权限,请调用该方法,而不是尝试获取属性并执行一些明显非OO(错误)的代码。