相关疑难解决方法(0)

禁用当前线程的Java反射

我需要调用一些半可靠的Java代码,并希望禁用在代码执行期间使用反射的功能.

try{
   // disable reflection somehow
   someObject.method();
}
finally{
   // enable reflection again
}
Run Code Online (Sandbox Code Playgroud)

可以使用SecurityManager来完成,如果是这样,怎么做?

澄清/上下文:这是关于限制可以从JavaScript/Rhino调用的包的另一个问题的后续行动.接受的答案引用了关于如何做到这一点的博客条目,它需要两个步骤,第一个使用Rhino API(ClassShutter),第二个使用关闭反射和Class.forName().我想我可以使用SecurityManager更干净地完成第二步(了解SecurityManager,正如已经指出的那样,沿途是一个复杂的野兽).

总而言之,我希望(从代码,而不是设置文件)关闭Class.forName()以及对整个反射包的任何访问.

java security reflection sandbox securitymanager

20
推荐指数
2
解决办法
7626
查看次数

标签 统计

java ×1

reflection ×1

sandbox ×1

security ×1

securitymanager ×1