参考网页:
Java 安全模型介绍 :http://www.ibm.com/developerworks/cn/java/j-lo-javasecurity/
照着该网页后面的例子实验了一下:
现将例子记录如下:
这个例子的目的是测试在
// 打开系统安全权限检查开关
System.setSecurityManager(new SecurityManager());
的情况下projectY项目往projectX目录下写文件
其中projectX项目中有一个在自己bin目录下用特权访问方式创建文件的静态方法doPrivilegedAction,projectY可以调用该方法成功创建文件。
前提需要一个应用的安全访问控制策略文件 (MyPolicy.txt)放置projectY项目的根目录下
doPrivileged 方法能够使一段受信任代码获得更大的权限,甚至比调用它的应用程序还要多,可做到临时访问更多的资源
Java SDK 中与安全相关的类和接口都放在 java.security 包中
<span style="font-size:12px;">doPrivilegedAction方法:
public static void doPrivilegedAction(final String fileName) {
// 用特权访问方式创建文件
AccessController.doPrivileged(new PrivilegedAction<String>() {
@Override
public String run() {
makeFile(fileName);
return null;
}
});
} </span>
<span style="font-size:12px;"><span style="font-size:10px;">MyPolicy.txt:
grant codebase "file:/D:/nece/2014work4/projectX/bin"
{
permission java.io.FilePermission "D:\\nece\\2014work4\\projectX\\bin\\*","write";
};</span></span>
特权访问机制实际上就是给应用开后门的使用上需要小心,所以这也给代码实现带来新的考虑,开放范围一定要限定好,否则可能留下安全隐患。
简单记录一下:方便后续的学习
可以参照下文,讲解很清楚
Java 安全模型介绍 :http://www.ibm.com/developerworks/cn/java/j-lo-javasecurity/