1.在eclipse的run configurations操作中设定了VM arguments的参数(策略文件的指定):
2.policy文件内容:
grant{
permission java.io.FilePermission "<<ALL FILES>>","read";
permission java.io.FilePermission "<<ALL FILES>>","write";
};
3.测试程序:
package com.lang;
import java.io.FilePermission;
import com.utils.FileUtils;
public class SecurityManagerTest {
public static void main(String[] args) {
setSecurityManagerForApp();
}
public static void setSecurityManagerForApp(){
System.out.println(System.getSecurityManager());
SecurityManager safeManager = System.getSecurityManager();
safeManager.checkPermission(new FilePermission("d:\\","write"));
FileUtils.createDirectory("D:\\hyx\\test", "h\\");//创建文件
System.out.println("file test ok...");
}
}
启动后即会打开java 的安全策略,System.getSecurityManager()获取到的实例已读取了policy中的访问策略,能够对io的访问进行限制和授权。
若没有在 VM中输入policy参数,System.getSecurityManager()打印出空对象;输入不正确的参数则无法正常io操作