AccessController.doPrivileged这个问题一直比较疑惑,不知道加了特权与没加有什么区别,也有朋友问如果Applet中加入doPrivileged是不是能跳过安全沙箱,但是试验是不能,那么doPrivileged又有什么用呢??
今天开窍突然产生了一个想法,不管对不对和大家讨论一下:我认为AccessController.doPrivileged是针对客户端设计得方法,因为需要安全验证得类不仅仅是Applet,包括各种来源,比如引用了某个别人写得jar包等等doPrivileged得意思也许是让这些资源得使用者来给资源设置特权,也就是说doPrivileged内的方法首先检查调用doPrivileged得本类得权限,如果合法则方法内得代码无偿执行,而一般我们在代码中引用第三方包,代码本身是合法得,但是包就不敢说。applet中写doPrivileged没有意义,因为代码本身就相当于外部包,本身就是不合法得。当然一般系统初始化得SecurityManager是空不存在特权问题。