Java 安全模型学习(一)

本文通过一个具体示例展示了如何在Java中使用安全模型来控制不同项目间的文件访问权限。介绍了如何通过设置安全管理器和使用doPrivileged方法来增强代码安全性,并提供了策略文件的具体配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考网页:

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/




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值