首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java SecurityManager多线程

Java SecurityManager多线程
EN

Stack Overflow用户
提问于 2011-05-10 19:39:01
回答 3查看 2K关注 0票数 2

我一直在尝试使用自定义的SecurityManager来沙箱保护一些外部加载的代码。我的SecurityManager运行得很好。我采取了与这里的许多帖子建议的相同的方法:在执行潜在危险的代码时设置自定义管理器,然后恢复为标准管理器。它工作得很好,做了我想要做的事情。然而,应用程序是多线程的:两个线程使用自定义管理器,一个使用默认管理器。这会导致可信代码无法正常运行的情况,因为另一个线程刚刚设置了自定义安全管理器。有没有办法解决这个问题?或者,有没有更好的方法呢?我看到一些帖子讨论对同一个安全管理器使用不同的策略,但我找不到一个很好的例子。非常感谢您的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-10 20:18:15

您的SecurityManager可以检查哪个线程正在运行。一个简单的本地线程就可以做到这一点,但是,您可能需要一个InheritableThreadLocal,以便创建的任何其他线程都“继承”线程的安全级别。

票数 3
EN

Stack Overflow用户

发布于 2011-05-10 22:19:19

您可以对整个应用程序使用一个安全性管理器。java安全框架就是为处理这种情况而设计的。工作的方法是使用策略文件的代码库功能,该功能允许您为不同的代码库分配不同的权限。你可以给你的“主”代码库分配“所有权限”,它将照常工作。您可以将任何导入的代码分配给受限代码库。

这都是有大量文档记录的here,可能与这个问题最相关的部分是policy file information

票数 3
EN

Stack Overflow用户

发布于 2011-05-10 22:03:16

测试当前线程或删除安全限制不是一个好主意。就像一个实例,假设不受信任的代码有一个喜欢休眠的finaliser?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5949430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档