2008-11-17 40 views
1

我有一個在其所有線程中運行基本RMISecurityManager的程序。但我想對多個線程進行更多控制,併爲這些線程專門設置另一個SecurityManager。如何爲此線程設置SecurityManager而不是System?

我該怎麼做? ...如果這是可能的!?

預先感謝您。

編輯:我找到了我的解決方案。 See here瞭解更多詳情。

回答

4

它沒有多大意義。如果代碼(惡意或不是)在不同的線程上執行,會怎麼樣?這甚至可以在Java庫中發生,並且傳輸安全上下文(可能使用java.security.AccessController.getContext/doPrivileged)。

小程序確實使用了一個涉及ThreadGroup的稍微困難的系統,但我不會推薦它。 JAAS允許Subject被添加到AccessControlContext,但我個人建議不使用這種編程風格。

給下載的代碼(如果有)適當的權限,並且不要給你不信任的敏感對象。

+0

事實上,我們遇到了一個架構問題。我們的應用程序使用root權限運行,併爲每個任務創建一個線程。 此任務必須根據用戶具有特定權限。 – Creasixtine 2008-11-17 12:27:25

2

SecurityManager根據正在運行的線程的安全上下文執行檢查,也許您希望使SecurityManager根據上下文中找到的任何內容執行不同的操作?

或者,您可能想要使用戰略模式實施您的SecurityManager

yc

相關問題