微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

原文地址:https://www.jb51.cc/java/437561.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐