Java 2平台安全机制:动态策略与访问控制详解
动态安全策略
在Java安全机制中,权限与保护域的绑定方式有静态和动态之分。动态策略是指将权限延迟绑定到保护域的技术。不过,即便Java运行时环境支持这种技术,并非所有授予保护域的权限都是动态计算的。
例如,类加载器可能会将权限静态绑定到保护域。像从源服务器下载的代码会被授予连接回源服务器的权限, URLClassLoader 会根据类的 CodeSource 的URL,在创建 ProtectionDomain 时(即首次遇到该类时),将权限添加到静态权限集中。这种静态绑定方式限制了安全策略刷新的有效性,其效果取决于策略提供者和类加载器的实现方式。
在J2SE 1.4之前,分配给类的所有权限都是静态的。策略刷新时,策略实现可能不支持重新计算授予 ProtectionDomain 的权限,类加载器也可能将权限静态绑定到保护域并进行缓存,从而使刷新策略无效。
J2SE 1.4 开始支持动态确定授予代码的权限,而非在创建代码的 ProtectionDomain 时进行静态绑定(也称为急切绑定)。策略中指定的权限绑定会延迟到在安全检查上下文中评估 ProtectionDomain 时进行。这一改变使策略提供者能够动态推导授予类的权限,将分配权限的责任转移到策略实现上。
现在,当 SecureClassLoader 为类构造 ProtectionDomain 时,其
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



