【发布时间】:2014-03-06 04:06:22
【问题描述】:
我的问题,类似于
why java security manager doesn't forbid neither creating new Thread() nor starting it?
我正在编写一个教学应用程序,允许学生提交执行某些任务并相互交互的 java 代码。
我们需要安全地加载、编译和执行一些代码。
使用Java工具我们可以在内存中完成代码的编译;然后自定义类加载器加载代码,代码在线程中执行,有一定的超时时间,并使用自定义安全管理器。
但是,学生仍然可以在他们的代码中创建线程,将它们设置为循环并最终耗尽 System/Tomcat 资源。
有没有办法阻止线程的创建?引用的答案说:
"""From your perspective, just change the policy."""
这在实践中意味着什么?
我试图覆盖方法 checkPermission(Permission) 和 checkAccess(ThreadGroup) 但我仍然无法拦截线程创建/启动
【问题讨论】:
标签: java multithreading securitymanager