Quello in caso compilassi a riga di comando, io sto utilizzando eclipse quindi fa tutto luI, dove dovrei inserire il riferimento al file di policy?
Comunque il file di policy è questo: (è il contenuto standard)
/* AUTOMATICALLY GENERATED ON Sat Feb 08 12:04:48 CET 2014*/
/* DO NOT EDIT */
grant codeBase "file:/C:/Program%20Files/Java/jre7/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:0", "listen";
permission java.net.SocketPermission "localhost:1099", "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";
};
Con questo file di policy FilePermission/AccessController mi danno "access denied" per esempio per la scrittura su file, però in realtà con il codice che ho scritto prima (FileOutputStream) riesce a scrivere su file.
Aggiungendo questa grant
grant codeBase "file:/C:/Users/Mirko/Desktop/ProvaClassLoader/bin/" {
permission java.io.FilePermission "<<ALL FILES>>", "write";
};
il FilePermission/AccessController non mi da più access denied per write e riesce a scrivere su file.
Il problema è nel primo caso, dove non c'è questa grant ed anche dando access denied riesce a scrivere su file.


Rispondi quotando