Java 安全管理器找出谁请求访问
Posted
技术标签:
【中文标题】Java 安全管理器找出谁请求访问【英文标题】:Java security manager find out who asks for access 【发布时间】:2011-08-13 11:03:48 【问题描述】:我写了一个自己的安全管理器,我的问题是,我在我的程序中运行其他用户的代码,我必须确保没有滥用。
所以我的问题是:我如何能够在安全管理器的方法中找到,谁在 checkXXXXX() 中要求访问 - 方法。
谢谢
【问题讨论】:
【参考方案1】:不,在一般情况下没有简单的方法可以做到这一点。
(如果您在 Web 容器中运行,这可能会提供一种获取当前请求的身份验证详细信息的方法。但这听起来不像您的用例。)
我想您可以尝试多种方式来实现这一点,但您需要小心防止代码欺骗用户身份。一种想法是将每个用户身份与不同的线程组相关联,并让您的安全管理器阻止在其他线程组中创建线程;阅读 Thread(ThreadGroup group, Runnable target, String name)
的 javadoc,注意它关于线程组检查的内容。
【讨论】:
感谢您的回答。我已经使用安全密钥阻止在其他线程中创建线程,您必须在其中注册自己的线程,您才能创建一个。但在一种情况下,你帮了我很多,因为我现在知道安全管理器是由线程自己调用的,所以我可以找出线程组和线程 ID。所以我做同样的事情用安全密钥注册线程是没有问题的!谢谢!以上是关于Java 安全管理器找出谁请求访问的主要内容,如果未能解决你的问题,请参考以下文章