【问题标题】:Calling Signed Java Applet from Java Script Security Issues从 Java Script 安全问题调用签名的 Java Applet
【发布时间】:2015-06-20 22:51:07
【问题描述】:

我有一个签名的 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;

}

当我从小程序内的按钮调用此方法时,它会毫无问题地创建文件。

问题是当我从 java 脚本调用这个方法时,我有以下异常:

access denied (java.io.FilePermission c:\myFile.txt read)

我该如何解决这个异常?

【问题讨论】:

  • 尝试用 AccessController.doPrivileged(new PrivilegedAction() { ... });看看:docs.oracle.com/javase/7/docs/api/java/security/…
  • 我尝试使用 AccessController 但我有同样的异常\
  • 如果你使用maven来构建这个applet jar,你是否在build/plubins/plugin{maven-jar-plugin}/configuration/archive/manifestEntries : tag all-permissions权限> ?
  • 我正在使用 NetBeans,并且我的清单文件中有以下行:权限:all-permissions Caller-Allowable-Codebase: *
  • “我尝试使用 AccessController 但我有同样的异常” 这是唯一的解决方案。显示更新的代码。在代码中添加一些内容以证明 JRE 是使用新代码而不是 Jar 的缓存副本。

标签: java javascript security applet


【解决方案1】:

使用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;
    } }
 });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 2017-03-25
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多