1
假設有一個java線程,其中加載了由多方提供的類。這些供應商可以指定他們自己的安全管理人員和政策嗎?他們可以限制這些提供者之間的訪問?在單個java線程中啓用多個安全管理器
假設有一個java線程,其中加載了由多方提供的類。這些供應商可以指定他們自己的安全管理人員和政策嗎?他們可以限制這些提供者之間的訪問?在單個java線程中啓用多個安全管理器
您只能設置一個SecurityManager
作爲安全管理器。
線程與Java中的安全性無關。對象在線程之間傳遞,因此使用基於線程的訪問模型沒什麼意義。
在Java中,每個類都被分配了一個ProtectionDomain
,因此有一組權限(這些權限可能在某種意義上是「動態的」,但對於大多數情況下它是有效的)。當安全管理員被要求檢查權限時,它將代表AccessController
,它檢查堆棧中的每個ProtectionDomain
活動(大致)。在實踐中,你需要隔離來自多方的代碼,但每個方都可以有自己的ProtectionDomain
,因此有權限。
@erickson是的,但'ProtectionDomain'中唯一重要的方法是'implies'。如果你想知道'ProtectionDomain'是否應該允許一個權限,就調用這個方法,而不是試圖獲取屬性並做一些明顯非OO(和錯誤)的代碼。 – 2012-03-16 18:35:41