securitymanager工作原理?
在查看java Thread源碼的時候發現一個類----securityManager,雖然很早就知道存在這樣一個類但是都沒有深究,今天查看了它的api和源碼,發現這個類功能強大,可以做很多權限控制策略的限制.所以在這里進行以下記錄.
1.首先說一下securityManager類的定義(來自APi): 安全管理器是一個允許應用程序實現安全策略的類。它允許應用程序在執行一個可能不安全或敏感的操作前確定該操作是什么,以及是否是在允許執行該操作的安全上下文中執行它。應用程序可以允許或不允許該操作。個人覺得這個解釋還是不算太容易理解,我覺得這個類就是進行權限控制的,我們可以通過這個類來控制系統是否能做什么或者是不能做什么.
2.獲取securityManager的方法: 通過觀察源碼發現,我們可以通過set和get方法類設置/獲取securityManager.
3.進行權限校驗的方法: checkPermission(Permission) 方法,我們可以通過此方法來獲取當前操作是否被securityManager允許,如果不被允許則拋出異常.當然此類也提供方法進行制定上下文的校驗,checkPermission(Permission,AccessControlContext),我們可以通過制定AccessControlContext來判斷這個操作在制定AccessControlContext中是否合法.
4.權限分為以下類別:文件、套接字、網絡、安全性、運行時、屬性、AWT、反射