WEB开发网
开发学院软件开发Java 基于 Java 2 运行时安全模型的线程协作 阅读

基于 Java 2 运行时安全模型的线程协作

 2009-09-20 00:00:00 来源:WEB开发网   
核心提示: 有两个运行时选项特别重要,-Djava.security.manager 告诉 JVM 装载 Java 的安全管理器,基于 Java 2 运行时安全模型的线程协作(6),进行运行时的安全检查,而 -Djava.security.policy 用来指定我们使用的策略文件,如果放在线程间异步协作的环

有两个运行时选项特别重要,-Djava.security.manager 告诉 JVM 装载 Java 的安全管理器,进行运行时的安全检查,而 -Djava.security.policy 用来指定我们使用的策略文件。

运行的结果如清单 7 所示。

清单 7. 运行结果

Exception in thread "main" java.security.AccessControlException: access denied ( 
java.io.FilePermission c:\paper\server\out.tmp write) 
    at java.security.AccessControlContext.checkPermission(Unknown Source) 
    at java.security.AccessController.checkPermission(Unknown Source) 
    at java.lang.SecurityManager.checkPermission(Unknown Source) 
    at java.lang.SecurityManager.checkWrite(Unknown Source) 
    at java.io.FileOutputStream.<init>(Unknown Source) 
    at java.io.FileOutputStream.<init>(Unknown Source) 
    at java.io.FileWriter.<init>(Unknown Source) 
    at sample.permtest.server.LogService.log(LogService.java:19) 
    at sample.permtest.client.Client.main(Client.java:16) 

客户端运行后,第一条消息成功写入 c:\\paper\\client\\out.tmp 文件,而第二条消息由于没有 c:\paper\server\out.tmp 文件的写权限而被拒绝执行。

线程间的安全协作

前一节本文给出的示例,如果放在线程间异步协作的环境里,情况会变得复杂。如图 4 所示。

图 4. 线程的异步协作

基于 Java 2 运行时安全模型的线程协作

上一页  1 2 3 4 5 6 7 8  下一页

Tags:基于 Java 运行

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接