http://zhanjia.iteye.com/blog/1842733(Java安全管理器SecurityManager, Permission)
public class SecurityManagerTest{
public static void main(String[] args) throws IOException {
System.out.println("SecurityManager: " + System.getSecurityManager());
FileInputStream fis = new FileInputStream("C:\\ForCustormApplication\\SecurityManager1.txt");
byte[] b = new byte[1024];
fis.read(b);
System.out.println(new String(b));
// FileInputStream fis2 = new FileInputStream("C:\\ForCustormApplication\\securityManageTest.policy");
// fis2.read(b);
// System.out.println(new String(b));
System.out.println(System.getProperty("file.encoding"));
}
}
1.
在C:\\ForCustormApplication\\securityManageTest.policy
grant {
permission java.io.FilePermission "C:\\ForCustormApplication\\SecurityManager1.txt", "read";
permission java.util.PropertyPermission "file.encoding", "read";
};
启动时(RUN AS 下Run configurations.. )在 argument选项卡下 VM argument中填入
java.security.manager
-Djava.security.policy=C:\ForCustormApplication\securityManageTest.policy
最后运行
2.
grant {
//如果没有填写权限
* FileInputStream fis = new FileInputStream("C:\\ForCustormApplication\\SecurityManager1.txt");
* FileInputStream fis2 = new FileInputStream("C:\\ForCustormApplication\\securityManageTest.policy");
* System.out.println(System.getProperty("file.encoding"));
* 都会 抛AccessControlExcepti on异常
*
}
3.
new FileInputStream("C:\\ForCustormApplication\\SecurityManager1.txt"); 对应权限:
permission java.io.FilePermission "C:\\ForCustormApplication\\SecurityManager1.txt", "read";
System.getProperty("file.encoding"); 对应的权限:
permission java.util.PropertyPermission "file.encoding", "read";
4.
如果在run 时没有启动security.manager 则
System.getSecurityManager() 为null
securityManager
最新推荐文章于 2021-06-30 21:27:21 发布