使用我签名的applet的用户之一无法从他的netwrok驱动器上传文件(基本上无法访问驱动器),并且使用我签名的applet的其他几个用户无法访问和上传文件来自网络驱动器。我能知道背后的原因是什么吗?
注意:无法从网络驱动器访问该文件的用户,他可以手动从网络驱动器访问该文件,并能够复制到本地驱动器。
答案 0 :(得分:1)
确保将代码包装在特权块中,或者确保您的签名无关紧要。
你可以使用这样的东西来读取文件。
File inputFile = (File) AccessController.doPrivileged(new PrivilegedAction() {
public Object run()
{
File inputFile1 = new File("C:\\Program Files\\MyFolder\\MyFile.jpg");
return inputFile1;
}
});
FileReader in = new FileReader(inputFile);
如果你想使用变量而不是静态文本作为文件位置,你必须使用这样的最终变量。
final String myfilename = <path or string var of filename>
File inputFile = (File) AccessController.doPrivileged(new PrivilegedAction() {
public Object run()
{
File inputFile1 = new File(myfilename);
}
}};
FileReader in = new FileReader(inputFile);
答案 1 :(得分:0)
签署applet并不一定会绕过所有安全限制,如果这种情况下犯罪分子会签署他们的漏洞。在给予applet访问权限之前,用户仍然必须信任该证书。我会确保applet可以读/写local drive,因为我怀疑这也是禁止的。