安全管理器与访问权限
权限检查(P414)
安全管理器是一个负责控制具体操作是否允许执行的类。安全管理器负责检查的操作包括以下内容:
创建一个新的类加载器
退出虚拟机
使用反射访问另一个类的成员
访问本地文件
打开socket连接
启动打印作业
访问系统剪贴板
访问AWT事件队列
打开一个顶层窗口
在运行Java应用程序时,默认的设置是不安装安全管理器的,这样所有的操作都是允许的。
Java平台的安全性(P415-417)
代码来源
代码来源是由一个代码位置和一个证书集指定的。代码位置指定了代码的来源。证书的目的是要由某一方来保障代码没有被篡改过。
权限
权限是指由安全管理器负责检查的任何属性。Java平台支持许多访问权限类,每个类都封装了特定权限的详细信息。
保护域
每个类都有一个保护域,它是一个用封装类的代码来源和权限集合的对象。当SecurityManager类需要检查某个权限时,它要查看当前位于调用堆栈上的所有方法的类,然后它要获得所有类的保护域,并且询问每个保护域,其权限集合是否允许执行当前正在被检查的操作。如果所有的域都同意,那么检查得以通过。否则,就会抛出一个SecurityException异常。
安全策略文件
策略管理器要读取相应的策略文件,这些文件包含了将代码来源映射为权限的指令。
该文件给所有下载自http://www.horstmann.com/classes的代码授予在/tmp目录下读取和写入文件的权限。
可以将策略文件安装在标准位置上。默认情况下,有两个位置可以安装策略文件
Java平台主目录的java.policy文件
用户主目录的.java.policy文件
可以在java.security配置文件中修改这些文件的位置
Last updated