[英]Calling Signed Java Applet from Java Script Security Issues
I have a signed Java Applet that has the following method: 我有一个签名的Java Applet,它具有以下方法:
public Boolean SaveToFile(String text)
{
File file = new File("c:\\myFile.txt");
// if file doesnt exists, then create it
if ( ! file.exists( ) )
{
file.createNewFile( );
}
file.setReadable(true);
file.setWritable(true);
FileWriter fw = new FileWriter( file.getAbsoluteFile( ) );
BufferedWriter bw = new BufferedWriter( fw );
bw.write( text );
bw.close( );
return true;
} }
When i call this method from a button inside the applet, it creates the file without any problems. 当我从applet内的按钮调用此方法时,它创建的文件没有任何问题。
The problem is when i call this method from java script, i have the following exception: 问题是当我从Java脚本调用此方法时,出现以下异常:
access denied (java.io.FilePermission c:\myFile.txt read)
How can i fix this exception? 我该如何解决此异常?
Using AccessController
fixed the issue: 使用
AccessController
解决了该问题:
public Boolean SaveToFile(String text)
{
final String textEx = text;
return AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
@Override
public Boolean run()
{
File file = new File("c:\\myFile.txt");
// if file doesnt exists, then create it
if ( ! file.exists( ) )
{
file.createNewFile( );
}
file.setReadable(true);
file.setWritable(true);
FileWriter fw = new FileWriter( file.getAbsoluteFile( ) );
BufferedWriter bw = new BufferedWriter( fw );
bw.write( textEx );
bw.close( );
return true;
} }
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.