Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 javadocs 中它声明 AccessController.doPrivileged() 被调用
在 AccessController.doPrivileged 的 javadocs 中,它进一步指出......
“在使用“特权”结构时要非常小心,并始终记住使特权代码部分尽可能小。”
那么,在特权结构中包含代码,这甚至不是很小的一面,这意味着什么?
的点Subject.doAs是改变Subject电流AccessControlContext(acc)的。它不应更改权限。API 文档doAs说“使用检索到的上下文”,如果您查看源代码,它会将 acc fromAccessController.getContext与主题结合起来。
Subject.doAs
Subject
AccessControlContext
doAs
AccessController.getContext
事实上,acc 需要获得特权才能成功调用。
以提升权限运行的大部分代码的问题在于它与最小权限原则相反。对手在某些恶意操作中滑倒的机会增加了。