Java 运行PrivilegedAction的已签名小程序仍然失败,并出现AccessControlException

Java 运行PrivilegedAction的已签名小程序仍然失败,并出现AccessControlException,java,security,permissions,applet,skype4java,Java,Security,Permissions,Applet,Skype4java,即使对于已签名的小程序,允许哪些特权操作也有某种限制吗?以下是堆栈跟踪: 线程“AWT-EventQueue-2”java.security.AccessControlException中的异常:拒绝访问(java.lang.RuntimePermission loadLibrary.skype) 位于java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) 在java.security.A

即使对于已签名的小程序,允许哪些特权操作也有某种限制吗?以下是堆栈跟踪:

线程“AWT-EventQueue-2”java.security.AccessControlException中的异常:拒绝访问(java.lang.RuntimePermission loadLibrary.skype) 位于java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) 在java.security.AccessController.checkPermission(AccessController.java:546) 位于java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 位于java.lang.SecurityManager.checkLink(SecurityManager.java:818) 位于java.lang.Runtime.loadLibrary0(Runtime.java:817) 位于java.lang.System.loadLibrary(System.java:1045) 在com.skype.connector.ConnectorUtils.loadLibrary上(ConnectorUtils.java:321) 位于com.skype.connector.osx.SkypeFramework.init(SkypeFramework.java:44) 位于com.skype.connector.osx.OSXConnector.initializeImpl(OSXConnector.java:107) 在com.skype.connector.connector.initialize上(connector.java:485) 在com.skype.connector.osx.OSXConnector.isRunning(OSXConnector.java:86) 在com.skype.skype.isRunning(skype.java:172)

即使对于已签名的小程序,允许哪些特权操作也有某种限制吗

我希望如此,因为受信任的小程序(不涉及任何JS)无法调用某些方法(例如
System.exit(int)
)。虽然受信任的小程序或JWS应用程序有一个更宽松的安全管理器,但它们仍然有一个安全管理器


在代码到达测试该理论的点之前,您可以尝试调用
System.setSecurityManager(null)
。如果它现在可以工作,不要将其用作生产代码,而是安装一个自定义的
SecurityManager
,该管理器允许当前权限以及特定兴趣的权限。

发现了问题。特权操作在我的小程序中,小程序的jar已签名,但需要特权的代码在另一个未签名的jar中。在另一个jar上签名解决了这个问题。另一件事是,即使我从特权操作包装中取出调用,只要jar被签名,它仍然可以工作。

受信任的小程序应该拥有所有权限,因此
System.exit(int)
应该“工作”。您可以有一个安全管理器,它总是在不检查任何内容的情况下拒绝。然而,插件2应该足够健壮,如果您崩溃了一个Java进程,新的进程将自动启动<代码>System.setSecurityManager(空)将清除当前进程中所有代码的安全管理器,无论源代码是什么。您可能不想这样做(更不用说在上面有数字签名了!)。JRE的最新版本应该防止(也就是说,弹出一个对话框)小应用程序和WebStart应用程序混合使用签名和未签名的代码(除非签名JAR明确允许,然后只能通过不同的类加载器)。