Java Security Manager完全禁用反射

前端之家收集整理的这篇文章主要介绍了Java Security Manager完全禁用反射前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
关于这个问题,我一直在阅读关于Stackoverflow的很多问题,但无法找到解决方案或解决我的问题.如果已经有人,如果有人提示,我将不胜感激……

我的问题/问题是,是否可以完全禁用不值得信赖的代码的反射?函数如getDeclaredMethods()(参见test.java).我已经有了一个Java安全管理器,如果代码试图写/读/等,它会抛出安全例外. …

如果有可能,有人可以告诉我怎么样?

布鲁诺

test.java

  1. TestClass cls = new TestClass();
  2. Class c = cls.getClass();
  3.  
  4. // returns the array of Method objects
  5. Method[] m = c.getDeclaredMethods();
  6. for(int i = 0; i < m.length; i++) {
  7. System.out.println("method = " + m[i].toString());
  8. }

解决方法

所以我没有直接用checkPermission()解决了这个问题.我的解决方法是检查是否访问了java.lang.reflect包.
  1. @Override
  2. public void checkPackageAccess(String pkg){
  3.  
  4. // don't allow the use of the reflection package
  5. if(pkg.equals("java.lang.reflect")){
  6. throw new SecurityException("Reflection is not allowed!");
  7. }
  8. }

猜你在找的Java相关文章