Java平台安全机制深度解析与自定义实践
1. Java平台安全操作基础
在Java编程中, doPrivileged 方法的使用虽然看似繁琐,但有其重要意义。它的设计初衷是为了确保即使在代表不可信代码执行时,也能严格控制代码所拥有的权限。以下是一个简单示例:
try {
AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
public Object run() throws FileNotFoundException {
return new FileInputStream("someFile");
}
});
} catch (PrivilegedActionException e) {
throw (FileNotFoundException) e.getException();
}
在使用 doPrivileged 时,需要注意特权代码块应尽可能小,能在块外执行的代码就不要放在块内,以确保特权操作的范围得到有效控制。
2. 继承访问控制上下文
在Java运行时,线程可以创建子线程,子线程又能创建自己的子线程。当一个线程创建时,Java虚拟机创建一个新的执行栈,并确保子线程继承当前执行上下文。具体来说,当前执行上下文的快照包含当前线程的继承访问控制上下文( AccessControlContext </
超级会员免费看
订阅专栏 解锁全文
1228

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



