1.一種安卓混合應(yīng)用的細(xì)粒度訪問控制方法,其特征在于,包括如下步驟:
(1)對(duì)安卓混合應(yīng)用中可能加載的各類的網(wǎng)絡(luò)域配置訪問控制策略;
(2)通過解析開發(fā)者預(yù)先定義策略配置文件,或者通過用戶動(dòng)態(tài)配置來獲取所運(yùn)行的安卓混合應(yīng)用的訪問控制策略;
(3)在安卓混合應(yīng)用的運(yùn)行中,當(dāng)安卓混合應(yīng)用的WebView中加載的網(wǎng)絡(luò)頁面中的代碼需要訪問系統(tǒng)資源時(shí),通過截取訪問請(qǐng)求對(duì)插件管理模塊的調(diào)用鏈,獲取發(fā)起訪問請(qǐng)求的來源和擬訪問的插件信息,并將這些相關(guān)信息進(jìn)行封裝;
(4)據(jù)訪問請(qǐng)求的來源、擬訪問的插件的信息,查詢?cè)L問控制策略庫(kù),根據(jù)訪問控制策略判斷是否允許該訪問請(qǐng)求;
(5)插件管理模塊根據(jù)判斷的結(jié)果進(jìn)行處理;若允許該訪問,則調(diào)用擬訪問插件的具體響應(yīng)函數(shù)處理該訪問請(qǐng)求,若拒絕該訪問,則結(jié)束。
2.如權(quán)利要求1所述的細(xì)粒度訪問控制方法,其特征在于,所述步驟(2)包括如下子步驟:
(2.1)由權(quán)限管理模塊獲取預(yù)先定義的策略配置文件并對(duì)其進(jìn)行解析;
(2.2)根據(jù)解析獲得的訪問控制主體、客體和動(dòng)作相關(guān)信息構(gòu)建訪問控制策略集合;
(2.3)由用戶根據(jù)應(yīng)用需求對(duì)上述問控制策略集合進(jìn)行增加、刪除或修改,來更新訪問控制策略集合。
3.如權(quán)利要求1或2所述的細(xì)粒度訪問控制方法,其特征在于,所述步驟(3)包括如下子步驟:
(3.1)當(dāng)安卓混合應(yīng)用的WebView中加載的Web頁面擬訪問系統(tǒng)資源時(shí),通過JavaScript代碼調(diào)用相關(guān)插件的js文件中提供的函數(shù);
(3.2)所述插件的js文件中的處理函數(shù)將相關(guān)的訪問請(qǐng)求的參數(shù)進(jìn)行封裝,采用安卓混合應(yīng)用開發(fā)框架提供的接口方法進(jìn)行統(tǒng)一處理;
(3.3)通過在初始化過程將安卓混合應(yīng)用綁定到安卓混合應(yīng)用WebView的橋接接口,將網(wǎng)絡(luò)頁面中對(duì)系統(tǒng)資源的訪問請(qǐng)求傳遞給Java層;
(3.4)由插件管理模塊根據(jù)訪問請(qǐng)求的參數(shù),查找對(duì)應(yīng)的插件對(duì)象;若存在插件對(duì)象,則將訪問請(qǐng)求的來源和擬訪問的插件信息進(jìn)行封裝,形成訪問請(qǐng)求信息后發(fā)送給權(quán)限管理模塊:;若不存在插件對(duì)象,則結(jié)束本次訪問。
4.如權(quán)利要求3所述的細(xì)粒度訪問控制方法,其特征在于,所述步驟(4)具體包括以下子步驟:
(4.1)權(quán)限管理模塊對(duì)訪問請(qǐng)求信息進(jìn)行解析,獲取訪問請(qǐng)求的主體和客體信息,即發(fā)起訪問請(qǐng)求的網(wǎng)絡(luò)域和擬訪問的插件;
(4.2)根據(jù)訪問請(qǐng)求的主體和客體信息查詢?cè)L問控制策略集合,判斷相應(yīng)的訪問控制策略是否存在;若是,則根據(jù)策略判斷是否允許訪問請(qǐng)求,若否,則根據(jù)默認(rèn)的策略進(jìn)行判斷。
5.如權(quán)利要求4所述的細(xì)粒度訪問控制方法,其特征在于,所述步驟(5)具體包括以下子步驟:
(5.1)若步驟(4)的判斷結(jié)果為允許訪問,則調(diào)用訪問請(qǐng)求對(duì)應(yīng)的插件來訪問系統(tǒng)資源;若判斷結(jié)果為拒絕訪問,則結(jié)束本次訪問;若判斷結(jié)果為詢問用戶,則進(jìn)入步驟(5.2);
(5.2)若用戶選擇允許訪問,則訪問請(qǐng)求對(duì)的插件來訪問系統(tǒng)資源,若用戶選擇拒絕訪問,則結(jié)束本次訪問。