Java Applet权限

前端之家收集整理的这篇文章主要介绍了Java Applet权限前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我已经整理了一个基本applet,用户从硬盘驱动器中选择一个文件,它读取该文件的第一行并将其传递给JavaScript进行一些额外的预处理,然后当您单击一个按钮时它会尝试上传文件通过HTTP POST请求提交文件.我发现了一个非常基本的开源applet,用于上传我为此最后一点复制和修改文件.

但麻烦的是,它并不常用.看起来它运行正常,但后来我遇到了两个与权限相关的障碍. Java控制台中的消息表明applet在以下两个权限上具有访问被拒绝错误

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

我发现这很奇怪,因为当我使用NetBeans中选中的“自签名”选项构建它时,我认为我已经授予了applet权限,然后单击以确认浏览器中的小安全性弹出窗口.

此外,我自己编写的部分,它读取文件并将第一行传递给JavaScript的工作正常.这是一个非常明确的指示,表明applet能够从本地文件系统中读取!在我真正尝试开始上传之前,问题才会开始.我想,有一点需要注意的是,上传过程似乎是在一个新线程中运行,而其余部分都在主类中运行而不创建线程.

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

最佳答案
您可能需要向安全管理员(代码,而不是管理员)询问是否允许执行特权操作.由于各种原因,applet能够打开本地文件通常不是一件好事,所以它的保护程度非常高.

基本的关键是调用AccessController.doPrivileged()并在Java Ranch FAQ上有一个good little tutorial.

猜你在找的Java相关文章