我有一個在其所有線程中運行基本RMISecurityManager的程序。但我想對多個線程進行更多控制,併爲這些線程專門設置另一個SecurityManager。如何爲此線程設置SecurityManager而不是System?
我該怎麼做? ...如果這是可能的!?
預先感謝您。
編輯:我找到了我的解決方案。 See here瞭解更多詳情。
我有一個在其所有線程中運行基本RMISecurityManager的程序。但我想對多個線程進行更多控制,併爲這些線程專門設置另一個SecurityManager。如何爲此線程設置SecurityManager而不是System?
我該怎麼做? ...如果這是可能的!?
預先感謝您。
編輯:我找到了我的解決方案。 See here瞭解更多詳情。
它沒有多大意義。如果代碼(惡意或不是)在不同的線程上執行,會怎麼樣?這甚至可以在Java庫中發生,並且傳輸安全上下文(可能使用java.security.AccessController.getContext
/doPrivileged
)。
小程序確實使用了一個涉及ThreadGroup
的稍微困難的系統,但我不會推薦它。 JAAS允許Subject
被添加到AccessControlContext
,但我個人建議不使用這種編程風格。
給下載的代碼(如果有)適當的權限,並且不要給你不信任的敏感對象。
SecurityManager根據正在運行的線程的安全上下文執行檢查,也許您希望使SecurityManager根據上下文中找到的任何內容執行不同的操作?
或者,您可能想要使用戰略模式實施您的SecurityManager。
yc
事實上,我們遇到了一個架構問題。我們的應用程序使用root權限運行,併爲每個任務創建一個線程。 此任務必須根據用戶具有特定權限。 – Creasixtine 2008-11-17 12:27:25