我写了一个自己的安全管理器,我的问题是,我在我的程序中运行其他用户的代码,我必须确保没有滥用。
所以我的问题是:我如何能够找到安全管理器的方法,谁在checkXXXXX()方法中要求访问。
由于
答案 0 :(得分:2)
在一般情况下,没有简单的方法可以做到这一点。
(如果您在Web容器中运行,可能会提供一种方法来获取当前请求的身份验证详细信息。但这听起来不像您的用例。)
我想有很多方法可以尝试实现这一点,尽管你需要小心防范欺骗用户身份的代码。一种想法是将每个用户身份与不同的ThreadGroup相关联,并让您的安全管理器阻止在其他线程组中创建线程;阅读Thread(ThreadGroup group, Runnable target, String name)
的javadoc,注意它对线程组检查的说法。