1

Windows 7 64ビット(プログラムファイル(x86)もあります)、jre 7およびjdk1.7.0_25を使用しています

IE8 (8.0.7600.16385) でアプレット ファイルにアクセスしているときに、次のエラーが発生しました。

java.security.accesscontrolexception アクセスが拒否されました (java.util.propertypepermission user.dir 読み取り)

ただし、次のページ/結果にアクセスできますが、この例外を通過/処理できません

java.policy ファイルを次のように変更すると、同じファイルが Windows 7 32 ビットで機能します。

// Standard extensions get all permissions by default

grant codeBase "file:${java.home}/lib/ext/*" {
     permission java.util.PropertyPermission "user.dir", "read";
     permission java.security.AllPermission;
};

// default permissions granted to all domains

grant codeBase "file:C:/Inetpub/wwwroot/applets/*" {
permission java.util.PropertyPermission "user.dir", "read";
permission java.security.AllPermission;
};

grant codeBase "file:C:/Inetpub/wwwroot/applets/ordered.xslt" {
permission java.util.PropertyPermission "user.dir", "read";
permission java.security.AllPermission;
};

grant codeBase "file:C:/Inetpub/wwwroot/applets/nonOrdered.xslt" {
permission java.util.PropertyPermission "user.dir", "read";
permission java.security.AllPermission;
};

grant codeBase "file:C:/Inetpub/wwwroot/applets/common.xsl" {
permission java.util.PropertyPermission "user.dir", "read";
permission java.security.AllPermission;
};

grant {
permission java.util.PropertyPermission "user.dir", "read";
permission java.security.AllPermission;
};

//grant { 
     // Allows any thread to stop itself using the java.lang.Thread.stop()
     // method that takes no argument.
     // Note that this permission is granted by default only to remain
     // backwards compatible.
     // It is strongly recommended that you either remove this permission
     // from this policy file or further restrict it to code sources
     // that you specify, because Thread.stop() is potentially unsafe.
     // See "http://java.sun.com/notes" for more information.
//     permission java.lang.RuntimePermission "stopThread";

     // allows anyone to listen on un-privileged ports
//     permission java.net.SocketPermission "localhost:1024-", "listen";

     // "standard" properies that can be read by anyone

//     permission java.util.PropertyPermission "java.version", "read";
//     permission java.util.PropertyPermission "java.vendor", "read";
//     permission java.util.PropertyPermission "java.vendor.url", "read";
//     permission java.util.PropertyPermission "java.class.version", "read";
//     permission java.util.PropertyPermission "os.name", "read";
//     permission java.util.PropertyPermission "os.version", "read";
//     permission java.util.PropertyPermission "os.arch", "read";
//     permission java.util.PropertyPermission "file.separator", "read";
//     permission java.util.PropertyPermission "path.separator", "read";
//     permission java.util.PropertyPermission "line.separator", "read";

//     permission java.util.PropertyPermission "java.specification.version", "read";
//     permission java.util.PropertyPermission "java.specification.vendor", "read";
//     permission java.util.PropertyPermission "java.specification.name", "read";

//     permission java.util.PropertyPermission "java.vm.specification.version", "read";
//     permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
//     permission java.util.PropertyPermission "java.vm.specification.name", "read";
//     permission java.util.PropertyPermission "java.vm.version", "read";
//     permission java.util.PropertyPermission "java.vm.vendor", "read";
//     permission java.util.PropertyPermission "java.vm.name", "read";
//  permission java.net.SocketPermission "softag2:1024-65535","connect,accept,resolve,listen";  
//  permission java.net.SocketPermission "softag2:80", "connect,accept,resolve,listen"; 
//};
4

1 に答える 1

3

私自身は、次のようにjava.policyファイルを置き換えることで解決しましたが、いくつかのマシンで動作しました。

/* AUTOMATICALLY GENERATED ON Tue Dec 10 14:15:46 PKT 2013*/
/* DO NOT EDIT */

grant codeBase "file:/C:/Users/Administrator/Desktop/New%20Folder%20(2)/Java/jre6/lib/ext/*" {
  permission java.security.AllPermission;
};

grant codeBase "file:/C:/Windows/Sun/Java/lib/ext/*" {
  permission java.security.AllPermission;
};

grant {
  permission java.lang.RuntimePermission "stopThread";
  permission java.net.SocketPermission "localhost:1024-", "listen";
  permission java.util.PropertyPermission "java.version", "read";
  permission java.util.PropertyPermission "java.vendor", "read";
  permission java.util.PropertyPermission "java.vendor.url", "read";
  permission java.util.PropertyPermission "java.class.version", "read";
  permission java.util.PropertyPermission "os.name", "read";
  permission java.util.PropertyPermission "os.version", "read";
  permission java.util.PropertyPermission "os.arch", "read";
  permission java.util.PropertyPermission "file.separator", "read";
  permission java.util.PropertyPermission "path.separator", "read";
  permission java.util.PropertyPermission "line.separator", "read";
  permission java.util.PropertyPermission "java.specification.version", "read";
  permission java.util.PropertyPermission "java.specification.vendor", "read";
  permission java.util.PropertyPermission "java.specification.name", "read";
  permission java.util.PropertyPermission "java.vm.specification.version", "read";
  permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
  permission java.util.PropertyPermission "java.vm.specification.name", "read";
  permission java.util.PropertyPermission "java.vm.version", "read";
  permission java.util.PropertyPermission "java.vm.vendor", "read";
  permission java.util.PropertyPermission "java.vm.name", "read";
  permission java.security.AllPermission;
};
于 2013-12-12T12:18:08.423 に答える