您好,我有RMI应用程序,现在我尝试从客户端调用服务器上的一些方法。我有以下代码:publicstaticvoidmain(finalString[]args){try{//SettingthesecuritymanagerSystem.setSecurityManager(newRMISecurityManager());IndicatorsServiceserver=(IndicatorsService)Naming.lookup("rmi://localhost/"+IndicatorsService.SERVICE_NAME);DataProviderprovider=newO
您好,我有RMI应用程序,现在我尝试从客户端调用服务器上的一些方法。我有以下代码:publicstaticvoidmain(finalString[]args){try{//SettingthesecuritymanagerSystem.setSecurityManager(newRMISecurityManager());IndicatorsServiceserver=(IndicatorsService)Naming.lookup("rmi://localhost/"+IndicatorsService.SERVICE_NAME);DataProviderprovider=newO
问题摘要:如何修改下面的代码,使不受信任的动态加载代码在安全沙箱中运行,而应用程序的其余部分不受限制?为什么URLClassLoader不像它所说的那样处理它?编辑:更新以回应AniB。编辑2:添加了更新的PluginSecurityManager。我的应用程序有一个插件机制,第三方可以提供一个包含实现特定接口(interface)的类的JAR。使用URLClassLoader,我可以加载该类并实例化它,没问题。因为代码可能不受信任,所以我需要防止它行为不端。例如,我在一个单独的线程中运行插件代码,以便在它进入无限循环或时间过长时将其终止。但是试图为他们设置一个安全沙箱,这样他们就不能
问题摘要:如何修改下面的代码,使不受信任的动态加载代码在安全沙箱中运行,而应用程序的其余部分不受限制?为什么URLClassLoader不像它所说的那样处理它?编辑:更新以回应AniB。编辑2:添加了更新的PluginSecurityManager。我的应用程序有一个插件机制,第三方可以提供一个包含实现特定接口(interface)的类的JAR。使用URLClassLoader,我可以加载该类并实例化它,没问题。因为代码可能不受信任,所以我需要防止它行为不端。例如,我在一个单独的线程中运行插件代码,以便在它进入无限循环或时间过长时将其终止。但是试图为他们设置一个安全沙箱,这样他们就不能