JavaTM安全体系结构 6


JavaTM安全体系结构(JDK1.2)


6. 安全性管理

6.1 管理Applet和应用程序



目前,所有JDK系统代码都是调用SecurityManager方法以检查现行策略并进行访问控制检查。不管一个Applet是在何时运行,都典型地安装一个安全管理器(SecurityManager实现);appletviewer和大多数浏览器(包括Netscape和Microsoft的浏览器)都安装了安全管理器。

当运行一个应用程序时,安全管理器不能被自动安装。为了象运行下载的Applet一样将同样的安全策略应用于一个在本地文件系统中的应用程序,运行该应用程序的用户必须使用新的 "-Djava.security.manager"命令行自变量(它设置java.security.manager的值)来调用Java虚拟机,如下所示:

java -Djava.security.manager SomeApp

或者,该应用程序本身必须调用java.lang.System类中的setSecurityManager方法,以安装一个安全管理器。

可以用一个命令行来指定一个特殊的安全管理器。方法是在"-Djava.security.manager"后加上一个等号,再加上将作为安全管理器使用的类名。如下所示:

java -Djava.security.manager=COM.abc.MySecMgr SomeApp

如果没有安全管理器被指定,则将使用内置缺省安全管理器(除非应用程序安装了一个不同的安全管理器)。下列几行命令是等价的,它们都会安装缺省安全管理器:

java -Djava.security.manager SomeApp
java -Djava.security.manager= "" SomeApp
java -Djava.security.manager=default SomeApp

JDK1.2包括一个名为java.class.path的属性。那些被存储在本地文件系统但不被当作基础类的类应该在这个路径下。在这个路径下的类用安全类装载器来装载,并且符合当前推行的安全策略。

还有一个 "-Djava.security.policy"命令行自变量,它的用法决定了应采用什么样的策略文件。这个命令行自变量在"缺省系统和用户策略文件"一节中详述。一般来说,如果你在一个命令行中未包括 "-Djava.security.policy",则在安全属性文件中所指定的策略文件将被使用。

当调用一个应用文件的执行时,你可以使用一个"-Djava.security.policy" 命令行自变量来指定一个附加的或不同的策略文件。举例如下:如果你键入以下命令行(这里的pURL是一个指定策略文件位置的URL),除了所有在安全属性中指定的策略文件外,上述由URL所指定的策略文件也将被装载。

java -Djava.security.manager -Djava.security.policy= pURL SomeApp

如果你不这样做,而是使用如下命令,即使用双等号来代替上面的单等号,则只有指定的策略文件被使用,其它策略文件将被忽略:

java -Djava.security.manager -Djava.security.policy = = pURL SomeApp

6.2 SecurityManager和AccessController

新的访问控制机制是全部向后兼容的。例如,在SecurityManager中的所有check方法仍然被支持(尽管它们的大多数实现已被变为调用新的SecurityManager 中的checkPermission方法,它们的缺省实现调用AccessController 的checkPermission方法)。注意:某些内部安全检查可能驻留在SecurityManager类中,除非它能被参数化。

到目前为止,我们还没有修改任何JDK代码系统以调用AccessController来代替调用SecurityManager(和检查类装载器的存在),这是由于现有的第三方应用程序可能创建SecurityManager子类并使check方法用户化。事实上,我们增加了一个新的方法SecurityManager.checkPerm
阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wxyxl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值