【问题标题】:Code inside java applet throwing PrivilegedActionException even when signedjava小程序中的代码即使在签名时也会抛出PrivilegedActionException
【发布时间】:2014-12-25 13:29:18
【问题描述】:

我有一个使用我制作的库的 Java Applet。在 Eclipse 上的另一个项目中使用的库完美运行。在小程序上,当我调用“主”类的构造函数时,我得到一个 PrivilegedActionException。构造函数唯一要做的就是创建一个对象的实例,该实例最终实现了 Java 的 Serializable,用于访问 Internet。您可以在此处查看课程:CommonsDataLoader.java。这个类实现了DataLoader.java,正如你所见,它实现了Serializable。

我可以在小程序中运行一个测试函数,它只是从 JS 接收一个字符串并返回一个新字符串。这非常有效。

所以...我似乎没有做错什么,也没有访问任何不寻常的东西。那么为什么会出现异常呢?

注意事项:

我正在使用 maven 来构建 jar。清单是使用 maven-assembly-plugin 的 <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 标签创建的。我认为我必须为清单提供 Permissions: all-permissions,但如果我这样做,测试功能甚至都不起作用。

编辑:

清单的标题:

Manifest-Version: 1.0
Implementation-Title: myApplet
Implementation-Version: 0.0.1-SNAPSHOT
Archiver-Version: Plexus Archiver
Built-By: pedrocunha
Implementation-Vendor-Id: myProject
Created-By: Apache Maven
Build-Jdk: 1.8.0_25

清单上有关 DataLoader 的行:

Name: eu/europa/ec/markt/dss/validation102853/loader/DataLoader.class
SHA-256-Digest: Aua3IW0faYfh4Mf3Q08wMxZc/WU0S2DuF6fJoE+pRpM=

清单上有关 CommonsDataLoader 的行:

Name: eu/europa/ec/markt/dss/validation102853/https/CommonsDataLoader.class
SHA-256-Digest: d4zCM6GVllA0Fy/pm4D6Z8OZf+jHR58VPCUIq786cr0=

【问题讨论】:

  • 这个库也签名了吗?请发布您的清单文件。
  • 是的,在清单上,每个 .class 都有一个条目及其各自的 SHA-256 摘要。该文件有点太大,无法放在这里,但我已将有关 dataloader 和 commonsdataloader 的行编辑到问题中。
  • 看这个问题:stackoverflow.com/questions/5868100/…你用什么证书?官方的还是你自己的?
  • 官方。我自己试过了,没用,所以我用了我工作的公司。
  • 来自文档:docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/… 如果您拥有所有权限并且您的小程序使用官方证书签名,小程序将作为桌面应用程序运行。 PriviledgeActionException 被抛出,因为小程序试图在沙箱之外做一些事情。改进您的测试功能或告诉我,哪里抛出异常(小程序试图做什么)。

标签: java javascript maven exception applet


【解决方案1】:

所以,我想我知道缺少/发生了什么。首先,声明为 pom 而不是 jar 的子项目的一些 pom 存在问题。 然后,清单需要所有权限声明和代码库。我将 * 分配给代码库。 每个罐子里的所有东西都必须签名。 jnlp 文件必须包含

<security>
all-permissions
</security>

需要特权的小程序内的代码需要在 doPrivileged 内(即访问硬件、套接字等)。

如果所有这些都设置好了,那么它将起作用。至少它对我有用。

【讨论】:

    猜你喜欢
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    • 2018-12-17
    相关资源
    最近更新 更多