當你想定義一個新類型的權限時,你必須實現抽象類java.security.Permission。所以你需要定義隱含函數。這些功能何時被調用?什麼時候Java安全「隱含」函數被調用?
回答
所以,顯而易見的答案是你打開你最喜歡的IDE並提出問題。有很多廢話,但Permissions
和ProtectionDomain
在其implies
方法中使用它。
因此,讓我們從有趣的地方開始,嘗試找出發生了什麼。
AccessControlContext.checkPermission
是一個有趣的方法,如果我們想知道acc是否允許特權。在AccessControlContext.checkPermission
的調試混亂中,致電ProtectionDomain.implies
(通過context[i]
)。看起來合理,每個ProtectionDomain
「在堆棧中」需要允許該權限。
ProtectionDomain.implies
class implies
on PermissionCollection
。很公平。
PermissionCollection
是一個抽象類,但Permissions
是API文檔指出的實現。這將打電話implies
Set
的Permission
,對吧?拿去。它爲Permission
的每種類型(實現)創建專家PermissionCollection
。
專家收藏是java.security
設計的一個非常多毛的部分。舉一個例子,FilePermission.newPermissionCollection
(我在鍵入時返回)返回一個FilePermissionCollection
(只出現在API文檔中用於不需要的序列化目的 - 詛咒Java序列化)。 FilePemrissionCollection.implies
是一個優化,它不會調用FilePermission.implies
,但推斷其實現。因此通常不會調用Permission.implies
。代替使用Permission.newPermissionCollection
的優化版本。
(我不是Java 2安全模型或庫的粉絲。)
- 1. 什麼時候對javascript函數的objective-c調用被調用/執行,什麼時候不調用?
- 2. 什麼時候可以安全使用PHP strtolower()函數?
- 3. BackgroundTransferService - TransferProgressChanged什麼時候被調用?
- 4. 什麼時候viewDidAppear被調用?
- 5. 什麼時候document.ready()被調用?
- 6. 什麼時候ViewWillAppear被調用?
- 7. 什麼時候onNewPicture()被調用?
- 8. 什麼時候ConvertBack方法被調用?
- 9. 什麼時候TGraphicControl.Paint被調用?
- 10. 什麼時候initWithCoder被調用?
- 11. 什麼時候InitializeCulture被調用
- 12. 什麼時候ReleaseView被調用?
- 13. 什麼時候ExecutionContext#reportFailure(Throwable)被調用?
- 14. 什麼時候body.rendered被調用與meteor.js
- 15. 什麼時候在嵌套類中調用構造函數(Java)
- 16. 什麼時候完全onServiceConnected有界服務會被調用?
- 17. 什麼時候可以安全地在std :: thread上調用native_handle()?
- 18. 什麼時候可以安全地調用pthread_attr_destroy?
- 19. 什麼時候可以安全地調用TIdTCPConnection.Disconnect?
- 20. 什麼時候線程安全問題?
- 21. WCF相互SSL安全什麼時候使用什麼證書?
- 22. 什麼時候在調用javascript函數時使用()
- 23. 什麼時候注入構造函數,什麼時候是CDI
- 24. 什麼時候使用QTimer調用多個函數調用的析構函數?
- 25. 爲什麼有時候viewDidLoad首先被調用,有時候被稱爲後者?
- 26. 什麼時候調用exit_mmap?
- 27. 什麼時候調用robot.cleanUp()
- 28. 什麼時候調用setDataTimeout?
- 29. 什麼時候調用scrollIntoView()
- 30. 什麼時候調用webview.clearData
您已經添加了API文檔,對不對?你不瞭解什麼部分?你的問題的答案就在那裏。 – vanza