【问题标题】:How to resolve permission issue in applet?如何解决小程序中的权限问题?
【发布时间】:2011-12-06 21:53:56
【问题描述】:

我的小程序有一个小问题,我收到以下错误。

Exception in thread "AWT-EventQueue-2" java.lang.ExceptionInInitializerError
    at applet.JSGD_Register.jButtonInitActionPerformed(JSGD_Register.java:861)
    at applet.JSGD_Register.access$1(JSGD_Register.java:841)
    at applet.JSGD_Register$2.actionPerformed(JSGD_Register.java:195)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission loadLibrary.jnifplib)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkLink(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at SecuGen.FDxSDK.jni.JFPLib.<clinit>(JFPLib.java:68)
    ... 27 more

为什么会出现这种情况以及如何解决?

【问题讨论】:

标签: java permissions applet


【解决方案1】:

首先阅读这个文档 - What Applets Can and Cannot Do? ** 并决定一个小程序允许什么样的代码。正如@AndrewThompson 指出的(see 评论)signed 小程序不具有安全性restrictions,因为它们是digitally signed(签名),这证明它们来自特定受信任的作者未经篡改。

有关已签名小程序的更多信息,请查看:

  1. Security in Rich Internet Applications
  2. Understanding Signing and Verification

【讨论】:

  • 第二个链接中提到的策略工具不适用于公开部署的小程序。为了信任这样的小程序,需要对其进行数字签名(并由用户确定)。
  • 很好的编辑。我认为可能有点误导的一件事是“受信任的作者”一词。可以使用 SDK 为“自签名”代码生成数字证书。这不是普通最终用户应该信任的证书,因为它没有经过像 VeriSign 这样的证书颁发机构的验证。我可以制作一个表明我是我的自签名证书,但这没有任何意义,因为我也可以制作一个表明我是 you. 的证书。幸运的是,JVM 不会处理已验证的 &自签名证书相同。 大警告带有自签名。
  • 您好 AVD 和 Andrew,感谢您的回复,感谢您的宝贵反馈,在这里我必须访问 applet 中的一个 .dll 库但我无法访问它的“jnifplib.dll”,但我无法访问它并得到了我在代码中给出的错误,那么我必须采取哪些基本步骤来解决这个问题?我希望你能给我一些基本的简单步骤或建议我纠正我构建 jar 的错误。
最近更新 更多