<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    David.Turing's blog

     

    JVM是怎樣進行授權(quán)控制的

    原文見諸于http://www.matrix.org.cn/thread.shtml?topicId=41625&forumId=55
    有網(wǎng)友提出疑問,

    假設(shè)JVM已開啟了SecurityManager,并且JASS的登陸模塊等也正常運作,且授權(quán)策略文件醒置正確,用戶也已正確地成功地被驗証。如果不執(zhí)行Subject.doAs()或Subject.doAsPrivileged()方法,JVM會對其它任何方法調(diào)用執(zhí)行權(quán)限檢查嗎?如果會,其具的實現(xiàn)過程又是怎樣的? 

    JAAS授權(quán)模型中對下面的情況講得好清楚:
      JVM由一個名為 SecurityManager 的類負責(zé)實施系統(tǒng)安全策略。在默認情況下不安裝安全管理器,必須通過一個在啟動時傳遞給 JVM 的一個名為 java.security.manager 的環(huán)境變量顯式地指定。任何應(yīng)用程序都可找到安裝的 SecurityManager 并調(diào)用它相應(yīng)的 check<XXX> 方法。
      對 SecurityManager 類進行的所有 check<XXX> 方法調(diào)用都解釋為相應(yīng)的 Permission 對象,并將它作為輸入?yún)?shù)傳遞給 AccessController 類的 checkPermission() 方法。 AccessController 類有一個名為 doPrivileged 的方法。doPrivileged 方法以一個類型為 PrivilegedAction 的對象作為輸入。PrivilegedAction 的對象有一個名為 run() 的方法,如果想實現(xiàn)一個執(zhí)行權(quán)限檢查的操作,需從PirvilegedAction中擴展,並在run()方法中實現(xiàn)自己的業(yè)務(wù)邏輯即可。但問題是,如果不是從PirvilegedAction中擴展的類,那麼調(diào)用其中的方法JVM還會不會執(zhí)行權(quán)限檢查?

    從java API中可以看到,Subject.doAs()或Subject.doAsPrivileged()方法都以PrivilegedAction作為參數(shù)輸入的。

    我做了一個小的形象總結(jié):
    通常來說,所有在JVM中執(zhí)行的方法都回進行權(quán)限檢查,except 那些由JVM引導(dǎo)的類,比如FileOutputStream和FileInputStream,你也明白你能夠利用FileOuptStream做點什么壞事了,呵呵,于是你寫了一個干壞事的類叫做EsunPirvilegedAction Class,這個類往用戶的user.home寫入n個1G的文件,這個類調(diào)用JVM不經(jīng)過權(quán)限檢查的FileOuptStream類。
    問題在于,JVM雖然不檢查FileOuptStream類,但會檢查所有在JVM運行中未被授權(quán)的類,包括你的
    EsunPirvilegedAction類,是否具有權(quán)限(判別標(biāo)準(zhǔn)就是C:\yourjdk\jre\lib\security\java.policy)。

    1,Permission對象如何Load入,可以看看SecurityManager機制
    2,AccessController 類執(zhí)行checkPermission() 方法,所有不信任的類都不能逃過次"劫",當(dāng)然,你可以叫所有Client都在其java.policy為你的創(chuàng)建一個Permission。
    3,PrivilegedAction是你的EsunPirvilegedAction類所必需實現(xiàn)的方法,否則SecurityManager不理你。

    總結(jié)性——Java有自己的信任體系,它引導(dǎo)的類以及它的擴展類都不需要checkPermission,你寫的要checkPermission。

    posted on 2006-04-02 11:53 david.turing 閱讀(1600) 評論(0)  編輯  收藏 所屬分類: Security領(lǐng)域

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(110)

    我參與的團隊

    隨筆分類(126)

    隨筆檔案(155)

    文章分類(9)

    文章檔案(19)

    相冊

    搜索

    積分與排名

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久亚洲精品国产| 亚洲二区在线视频| 亚洲欧洲免费视频| 亚洲入口无毒网址你懂的| 五月婷婷亚洲综合| 日韩电影免费观看| 亚洲国产成人久久精品大牛影视| 国产精品亚洲αv天堂无码| 99精品国产成人a∨免费看| 亚洲精品无码国产片| 亚洲av无码一区二区三区乱子伦| 啦啦啦中文在线观看电视剧免费版| 羞羞视频在线观看免费| 亚洲视频在线不卡| 亚洲成av人在片观看| 手机看黄av免费网址| 国产精品永久免费| 亚洲日韩国产一区二区三区在线| 亚洲精品无码成人AAA片| 日本媚薬痉挛在线观看免费| 一级毛片免费不卡在线| 老司机午夜免费视频| 亚洲人成日本在线观看| 亚洲AV午夜福利精品一区二区| 午夜两性色视频免费网站| 日本免费一区二区三区| 一级做a爰性色毛片免费| 亚洲中文字幕无码mv| 77777_亚洲午夜久久多人| 丝袜熟女国偷自产中文字幕亚洲| 性色av无码免费一区二区三区| 嫩草在线视频www免费观看 | 亚洲人成未满十八禁网站| 亚洲AV成人片色在线观看高潮| 亚洲国产成人久久精品99 | 又黄又大的激情视频在线观看免费视频社区在线 | 久久久久亚洲国产AV麻豆 | 亚洲午夜成激人情在线影院| 亚洲色无码一区二区三区| 免费观看日本污污ww网站一区| 国产成在线观看免费视频|