2

在 javadocs 中它声明 AccessController.doPrivileged() 被调用

在 AccessController.doPrivileged 的​​ javadocs 中,它进一步指出......

“在使用“特权”结构时要非常小心,并始终记住使特权代码部分尽可能小。”

那么,在特权结构中包含代码,这甚至不是很小的一面,这意味着什么?

4

1 回答 1

2

的点Subject.doAs是改变Subject电流AccessControlContext(acc)的。它不应更改权限。API 文档doAs说“使用检索到的上下文”,如果您查看源代码,它会将 acc fromAccessController.getContext与主题结合起来。

事实上,acc 需要获得特权才能成功调用。

以提升权限运行的大部分代码的问题在于它与最小权限原则相反。对手在某些恶意操作中滑倒的机会增加了。

于 2013-11-13T15:15:37.873 回答