Java 小程序权限

标签 java upload permissions applet

我整理了一个基本的小程序,用户可以在其中从他们的硬盘驱动器中选择一个文件,它会读取该文件的第一行并将其传递给 JavaScript 进行一些额外的预处理,然后当您单击一个按钮时它会尝试通过 HTTP POST 请求上传该文件。我找到了一个非常基本的开源小程序,用于上传我为最后一点复制和修改的文件。

但问题是,它并不完全有效。看起来它运行良好,但后来我遇到了两个与权限相关的问题。 Java 控制台中的消息表明小程序在以下两个权限上出现拒绝访问错误:

java.lang.RuntimePermission setFactory
java.io.FilePermission read

我觉得这很奇怪,因为我认为当我使用在 NetBeans 中选中的“自签名”选项构建小程序时,我已经授予了该小程序的权限,然后单击以确认浏览器中的小安全弹出窗口。

另外,我自己编码的部分,它读取文件并将第一行传递给 JavaScript,工作正常。这是一个非常明确的指示,表明小程序能够从本地文件系统读取!直到我真正尝试开始上传时,问题才开始出现。我想,需要注意的一件事是上传过程似乎在一个新线程中运行,而其余部分都在主类中运行而没有创建线程。

我是 Java 的新手,对 Java 中的线程知之甚少;我需要以某种方式将权限传递给这个新线程吗?或者有那种效果的东西? 提前致谢。

最佳答案

您可能需要向安全经理(代码,而不是管理员)请求执行特权操作的权限。由于各种原因,小程序能够打开本地文件通常不是一件好事,因此它受到了相当严密的保护。

基本的关键是调用 AccessController.doPrivileged() 并且有一个 good little tutorial在 Java Ranch 常见问题解答中对此进行了介绍。

关于Java 小程序权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/620153/

相关文章:

php - 使用 php 和 mysql 损坏上传的文件

android - 即使允许也允许返回 false

java - MVC( Model View Controller );请解释一下这个方法

java - SimpleDateFormat 未按预期工作

java - 数组序列化使用 Jackson 给出合格的类名称

php - 如何使用 php 上传 zip 文件?

java - 正则表达式为 -1 到 999,但可以接受空白

Android 文件上传使用 HTTP PUT

php - 403 禁止尝试执行 php 脚本

permissions - rsync:如何保持选定的目标目录权限?