gpt4 book ai didi

java - 仅为一种方法设置 Java SecurityManager

转载 作者:行者123 更新时间:2023-11-29 06:02:54 27 4
gpt4 key购买 nike

我有一个方法 A,它可能如下所示:

public double A{
if (secM == null) {
secM = new SecurityManager();
System.setSecurityManager(secM);
}
//do something and return a double

}

问题是,一旦设置了 SecurityManager,它就适用于整个项目,但我只需要它适用于该方法所在的类。我怎样才能告诉 SecurityManager 只验证这个方法/类的权限?

最佳答案

您希望 SecurityManager 阻止哪些操作,您希望允许哪些操作? SecurityManager 更常用于通过任何方法控制特定操作,而不是通过单一方法控制操作。

但是,它也可以通过创建检查调用堆栈的自定义 SecurityManager 来完成后者 - 参见 this answer例如 - 这是您需要的吗?

您可以为系统范围的 SecurityManager 提供针对您的应用程序量身定制的策略,这样您就可以允许大多数操作,但可以阻止一小部分操作。你可以控制的权限是listed here .

更新:您可能可以通过将您的方法拉出到一个单独的类中来更优雅地执行此操作,该类可以单独加载(由不同的类加载器)你的其他类(class)。参见 this example .然后你可以用类加载器做一个简单的检查,而不是检查完整的堆栈跟踪。但是,我不熟悉这种方法 - 如果来自两个独立类加载器的类需要交互,可能会有影响......

关于java - 仅为一种方法设置 Java SecurityManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9482307/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com