有关安全策略问题
package ddd;
class GetProps {
public static void main(String[] args) {
/* Test reading properties w & w/out security manager */
String s;
try {
System.out.println( "About to get os.name property value ");
s = System.getProperty( "os.name ", "not specified ");
System.out.println( " The name of your operating system is: " + s);
System.out.println( "About to get java.version property value ");
s = System.getProperty( "java.version ", "not specified ");
System.out.println( " The version of the JVM you are running is: " + s);
System.out.println( "About to get user.home property value ");
s = System.getProperty( "user.home ", "not specified ");
System.out.println( " Your user home directory is: " + s);
System.out.println( "About to get java.home property value ");
s = System.getProperty( "java.home ", "not specified ");
System.out.println( " Your JRE installation directory is: " + s);
} catch (Exception e) {
System.err.println( "Caught exception " + e.toString());
}
}
}
代码编译后所在位置C:\aaa\ddd
java -Djava.security.manager ddd.GetProps
grant codeBase "file:/C:/aaa/ddd/* "
{
permission java.security.AllPermission;
}
在java.policy中加上了如上的语句
结果还是出现了
C:\aaa> java -Djava.security.manager ddd.GetProps
About to get os.name property value
The name of your operating system is: Windows XP
About to get java.version property value
The version of the JVM you are running is: 1.5.0_11
About to get user.home property value
Caught exception java.security.AccessControlException: access denied (java.util.
PropertyPermission user.home read)
但是如果以上grant codeBase "file:/C:/aaa/ddd/* "
{
permission java.security.AllPermission;
}
改成
grant
{
permission java.security.AllPermission;
}
就没有任何问题了,我想问一下是不是 "file:/C:/aaa/ddd/* "这样写有什么错误 谢谢大家指教 忙了一天也没明白。
帖子由 weifengqian 编辑过
[解决办法]
我也碰到了这个问题,加上codeBase之后就不是AllPermission了,而是部分Permission。正在寻求解决办法。你知道了也告诉我一下,谢谢。