【问题标题】:Giving a JApplet read write access to the local file system授予对本地文件系统的 JApplet 读写访问权限
【发布时间】:2012-08-16 22:58:24
【问题描述】:

我有一个 JApplet,我想授予它读写打印等权限。 此小程序仅从本地文件系统加载

我一直在阅读 Java 教程的控制小程序部分,并成功创建了一个策略文件,授予权限并指定代码库 http://docs.oracle.com/javase/tutorial/security/tour1/index.html

为了让示例小程序成功写入本地系统,我必须将此行添加到 java.security 文件中。 policy.url.3=file:/home/susanj/test/examplepolicy

问题是,如何通过代码实现相同的结果?

我假设您从 Policy 类开始 http://docs.oracle.com/javase/6/docs/api/java/security/Policy.html#getInstance%28java.lang.String,%20java.security.Policy.Parameters%29

使用任一 getInstance 方法创建新策略

Policy.getInstance(字符串类型,Policy.Parameters 参数)

政策。 getInstance(字符串类型,Policy.Parameters 参数,Provider 提供者)

政策。 getInstance(String type,Policy.Parameters params, String provider)

并通过 Policy.setPolicy(Policy p) 方法添加它 然后使用 政策。刷新();

不幸的是,它似乎与 getInstance 方法分崩离析,事情开始变得相当混乱,我需要知道的是,我需要使用什么类型的策略参数作为参数来为我的小程序授予完全权限。

此小程序不是从 Internet 下载的,它是桌面应用程序的一部分,因此我可以在加载小程序之前以完全权限运行类/jar 文件。我假设您可以在小程序加载之前以这种方式设置策略文件?

我假设这实际上是正确的方法。

问候

布雷特

【问题讨论】:

    标签: java japplet


    【解决方案1】:

    如果您可以从沙箱中修改策略,那将是一个非常糟糕的主意......这听起来像是您正在尝试做的事情。

    阅读Set up a Policy File to Grant the Required Permission

    你基本上需要更新Java默认实例中的Policy文件才能运行Applet。

    或者你可以签名。

    【讨论】:

    • 这个小程序不是从互联网上下载的,它是桌面应用程序的一部分。我可以在小程序加载之前加载一个类/jar文件。我假设您可以在小程序加载之前设置策略文件?
    • 应该没什么区别,Applet 在受限安全模式下运行,这就是它默认的工作方式。您需要以某种方式使其以“不受保护”模式运行。最好的方法是更新默认策略文件,或为应用程序提供不同的策略文件,例如 -Djava.security.policy=applet.policy
    • eclipse IDE如何让小程序以全权限运行?
    • 视情况而定,它是使用自己的applet 视图还是Java 自带的?如果它是自己的,它可能正在实现它自己的安全管理器或提供它自己的安全策略文件。 Netbeans 使用提供的小程序查看器,但它允许您从容器内将小程序切换到不受保护的模式
    • “我最终直接写入了 java.policy 文件。” 有机会请accept 回答。作为旁白。策略文件在部署时将不实用。代码需要进行数字签名。我的建议是在构建文件中添加一个任务,以便在每次构建时对其进行签名。
    猜你喜欢
    • 2018-09-18
    • 1970-01-01
    • 2019-06-10
    • 2021-03-16
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多