基于Java 2运行时安全模子的线程合作[Java编程]
本文“基于Java 2运行时安全模子的线程合作[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在Java 2之前的版本,运行时的安全模子利用非常严峻受限的沙箱模子(Sandbox).读者应当熟习,Java 不受信的Applet代码就是基于这个严峻受限的沙箱模子来供应运行时的安全查抄.沙箱模子的本质是,任何本地运行的代码都是受信的,有完好的权限来存取关键的系统资源.而关于Applet,则属于不受信的代码,只能拜候沙箱范围内有限的资源.当然,您可以通过数字签名的方法配置您的Applet为受信的代码,具有同本地代码一样的权限.
从Java 2开始,Java 供应了基于战略(Policy)与仓库受权的运行时安全模子,它是一个越发细粒度的存取掌握,易于配置与扩大,其总体的架构如图 1 所示:
图 1.Java 2安全模子
简单来说,当类由类装载器(Class Loader)载入到 JVM 运行,这些运行时的类会按照 Java Policy 文件的配置,被赋予差别的权限.当这些类要拜候某些系统资源(比方翻开 Socket、读写文件等),大概履行某些敏感的操作(比方存取密码)时,Java 的安全管理器(ava.lang.SecuirtyManager)的查抄权限办法将被调用,查抄这些类能否具有必要的权限来履行该操作.
在持续深化谈论之前,我们先来澄清下面的几个概念:
战略,即系统安全战略,由用户大概管理员配置,用来配置履行代码的权限.运行时的 java.security.Policy 对象用来代表该战略文件.
权限,Java 定义了层次构造的权限对象,全部权限对象的根类是 java.security.Permission.权限的定义触及两个核心属性:目标(Target)与行动 (Action).比方关于文件相关的权限定义,其目标就是文件大概目录,其行动包含:读,写,删除等.
保护域,保护域可以理解为具有共同的权限集的类的调集.
在Java 2里,权限实际上是被赋予保护域的,而不是直接赋给类.权限、保护域和类之间的映射关系如图 2.
图 2. 类,保护域,权限的映射关系
如图 2 所示,当前运行时仓库是从 a.class 到 e.class.在运行时仓库上的每一帧(Stack Frame)城市被 Java 划归为某个保护域(保护域是 Java 按照 Policy 文件配置构建出来的).Java 的安全管理器在履行权限查抄时,会对仓库上的每个 Stack Frame 做权限查抄,当且仅当每个 Stack Frame 被赋予的权限集都暗含(Imply)了所要求的权限时,该操作才被答应履行,不然 java.security.AccessControlException 非常将被抛出,该操作履行失利.
以上是“基于Java 2运行时安全模子的线程合作[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |