亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

權(quán)限的更新方法和裝置與流程

文檔序號:12132465閱讀:408來源:國知局
權(quán)限的更新方法和裝置與流程

本申請涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種權(quán)限的更新方法和裝置。



背景技術(shù):

權(quán)限管理,一般指根據(jù)系統(tǒng)設(shè)置的安全規(guī)則或者安全策略,用戶可以訪問而且只能訪問自己被授權(quán)的資源,不多不少。權(quán)限管理幾乎出現(xiàn)在任何系統(tǒng)里面,只要有用戶和密碼的系統(tǒng)。為了校驗(yàn)權(quán)限的效率,通常的做法是將用戶的權(quán)限緩存起來。而在管理員修改某個用戶權(quán)限時,如果這個用戶在使用系統(tǒng),那么想要對這個用戶權(quán)限即時生效,除了數(shù)據(jù)庫中用戶的權(quán)限要做更新外,緩存的權(quán)限也要同步更新。現(xiàn)有技術(shù)在管理員修改權(quán)限后同時更新緩存中的信息。但是,如果修改的權(quán)限影響到很多用戶的話要同時刷新所有用戶,這樣修改權(quán)限時的響應(yīng)時間會很長,導(dǎo)致修改的效率比較低。

針對上述的問題,目前尚未提出有效的解決方案。



技術(shù)實(shí)現(xiàn)要素:

本申請實(shí)施例提供了一種權(quán)限的更新方法和裝置,以至少解決修改用戶的權(quán)限時效率比較低的技術(shù)問題。

根據(jù)本申請實(shí)施例的一個方面,提供了一種權(quán)限的更新方法,包括:在校驗(yàn)權(quán)限時獲取當(dāng)前用戶的當(dāng)前用戶信息;獲取所述當(dāng)前用戶信息的修改標(biāo)志位,其中,所述修改標(biāo)志位用于指示所述當(dāng)前用戶的權(quán)限信息為有修改或者無修改;如果所述修改標(biāo)志位指示所述當(dāng)前用戶的權(quán)限信息為有修改,則更新緩存中所述當(dāng)前用戶的權(quán)限信息。

進(jìn)一步地,在獲取當(dāng)前用戶的當(dāng)前用戶信息之前,所述方法還包括:從緩存中查詢所述當(dāng)前用戶信息;將查詢到的當(dāng)前用戶信息存儲到會話中,其中,存儲到所述會話中的當(dāng)前用戶信息與查詢到的所述緩存中的用戶信息指向同一地址,其中,在緩存中沒有查詢到所述當(dāng)前用戶信息時,則從數(shù)據(jù)庫中查詢所述當(dāng)前用戶信息,并將所述當(dāng)前用戶信息存儲在所述緩存中。

進(jìn)一步地,在校驗(yàn)權(quán)限時獲取當(dāng)前用戶的當(dāng)前用戶信息包括:在校驗(yàn)權(quán)限時從所 述會話中獲取所述當(dāng)前用戶的所述當(dāng)前用戶信息。

進(jìn)一步地,在獲取當(dāng)前用戶的當(dāng)前用戶信息之前,所述方法還包括:將用戶的身份信息保存在會話中;獲取當(dāng)前用戶的當(dāng)前用戶信息包括:從所述會話中獲取所述當(dāng)前用戶的身份信息,并按照所述當(dāng)前用戶的身份信息從所述緩存中查找所述當(dāng)前用戶的用戶信息。

進(jìn)一步地,所述方法還包括:接收對當(dāng)前用戶進(jìn)行修改的修改指令,所述修改指令用于指示更改所述當(dāng)前用戶的修改標(biāo)志位;按照所述指令對緩存中的所述當(dāng)前用戶的修改標(biāo)志位進(jìn)行更改,以使標(biāo)記后的修改標(biāo)志位指示所述當(dāng)前用戶的權(quán)限信息為有修改。

進(jìn)一步地,在更新緩存中當(dāng)前用戶的權(quán)限信息之后,所述方法還包括:更改述當(dāng)前用戶的修改標(biāo)志位,以使所述當(dāng)前用戶的修改標(biāo)志位指示所述當(dāng)前用戶的權(quán)限信息為無修改。

根據(jù)本申請實(shí)施例的另一方面,還提供了一種權(quán)限的更新裝置,包括:信息獲取單元,用于在校驗(yàn)權(quán)限時獲取當(dāng)前用戶的當(dāng)前用戶信息;標(biāo)志位獲取單元,用于獲取所述當(dāng)前用戶信息的修改標(biāo)志位,其中,所述修改標(biāo)志位用于指示所述當(dāng)前用戶的權(quán)限為有修改或者無修改;更新單元,用于在所述修改標(biāo)志位指示所述當(dāng)前用戶的權(quán)限信息為有修改時,更新緩存中當(dāng)前用戶的權(quán)限信息。

進(jìn)一步地,所述裝置還包括:查詢單元,用于在獲取當(dāng)前用戶的當(dāng)前用戶信息之前,從緩存中查詢所述當(dāng)前用戶信息;存儲單元,用于將查詢到的當(dāng)前用戶信息存儲到會話中,其中,存儲到所述會話中的當(dāng)前用戶信息與查詢到的所述緩存中的用戶信息指向同一地址,其中,在緩存中沒有查詢到所述當(dāng)前用戶信息時,則從數(shù)據(jù)庫中查詢所述當(dāng)前用戶信息,并將所述當(dāng)前用戶信息存儲在所述緩存中。

進(jìn)一步地,所述信息獲取單元還用于在校驗(yàn)權(quán)限時從所述會話中獲取所述當(dāng)前用戶的所述當(dāng)前用戶信息。

進(jìn)一步地,所述裝置還包括:接收單元,用于接收對當(dāng)前用戶進(jìn)行修改的修改指令,所述修改指令用于指示更改所述當(dāng)前用戶的修改標(biāo)志位;第一更改單元,用于按照所述指令對緩存中的所述當(dāng)前用戶的修改標(biāo)志位進(jìn)行更改,以使標(biāo)記后的修改標(biāo)志位指示所述當(dāng)前用戶的權(quán)限信息為有修改。

進(jìn)一步地,所述裝置還包括:第二更改單元,用于在更新緩存中當(dāng)前用戶的權(quán)限信息之后,更改所述當(dāng)前用戶的修改標(biāo)志位,以使所述當(dāng)前用戶的修改標(biāo)志位指示所述當(dāng)前用戶的用戶權(quán)限為無修改。

在本申請實(shí)施例中,在校驗(yàn)權(quán)限時獲取當(dāng)前用戶的當(dāng)前用戶信息。獲取當(dāng)前用戶信息的修改標(biāo)志位,其中,修改標(biāo)志位用于指示當(dāng)前用戶的權(quán)限信息為有修改或者無修改。如果修改標(biāo)志位指示當(dāng)前用戶的權(quán)限信息為有修改,則更新緩存中當(dāng)前用戶的權(quán)限信息,在當(dāng)前用戶需要驗(yàn)證權(quán)限的時候判斷當(dāng)前用戶的權(quán)限是否被修改,并在當(dāng)前用戶的權(quán)限被修改時更新緩存中當(dāng)前用戶的權(quán)限,避免了同時對緩存中多個用戶的權(quán)限更改時導(dǎo)致效率比較低的技術(shù)問題,解決了現(xiàn)有技術(shù)中修改用戶的權(quán)限時效率比較低的技術(shù)問題,達(dá)到了提高更新效率的效果。

附圖說明

此處所說明的附圖用來提供對本申請的進(jìn)一步理解,構(gòu)成本申請的一部分,本申請的示意性實(shí)施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:

圖1是根據(jù)本申請實(shí)施例的權(quán)限的更新方法的流程圖;

圖2是根據(jù)本申請實(shí)施例的一種可選的權(quán)限的更新方法的流程圖;

圖3是根據(jù)本申請實(shí)施例的另一種可選的權(quán)限的更新方法的流程圖;

圖4是根據(jù)本申請實(shí)施例的又一種可選的權(quán)限的更新方法的流程圖;以及

圖5是根據(jù)本申請實(shí)施例的權(quán)限的更新裝置的示意圖。

具體實(shí)施方式

為了使本技術(shù)領(lǐng)域的人員更好地理解本申請方案,下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分的實(shí)施例,而不是全部的實(shí)施例。基于本申請中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。

需要說明的是,本申請的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。

名詞解釋:

session:即會話,用于保持狀態(tài)的基于Web服務(wù)器的方法。session允許通過將對象存儲在Web服務(wù)器的內(nèi)存中在整個用戶會話過程中保持任何對象。

持久化:把數(shù)據(jù)(如內(nèi)存中的對象)保存到可永久保存的存儲設(shè)備中(如磁盤)。持久化的主要應(yīng)用是將內(nèi)存中的對象存儲在關(guān)系型的數(shù)據(jù)庫中,當(dāng)然也可以存儲在磁盤文件中、XML數(shù)據(jù)文件中等等。

根據(jù)本申請實(shí)施例,提供了一種權(quán)限的更新方法的方法實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。

圖1是根據(jù)本申請實(shí)施例的權(quán)限的更新方法的流程圖,如圖1所示,該方法包括如下步驟:

步驟S102,在校驗(yàn)權(quán)限時獲取當(dāng)前用戶的當(dāng)前用戶信息。

步驟S104,獲取當(dāng)前用戶信息的修改標(biāo)志位,其中,修改標(biāo)志位用于指示當(dāng)前用戶的權(quán)限信息為有修改或者無修改。

步驟S106,如果修改標(biāo)志位指示當(dāng)前用戶的權(quán)限信息為有修改,則更新緩存中當(dāng)前用戶的權(quán)限信息。

在當(dāng)前用戶需要校驗(yàn)權(quán)限時,獲取該用戶的當(dāng)前用戶信息,并獲取該用戶的修改標(biāo)志位,以判斷當(dāng)前用戶的權(quán)限是否有修改,如果當(dāng)前用戶的修改標(biāo)志位指示當(dāng)前用戶的權(quán)限有修改,則更新服務(wù)器的緩存中當(dāng)前用戶的權(quán)限信息。由于修改一個用戶的權(quán)限可能會導(dǎo)致多個用戶的權(quán)限都被修改,如果同時更新緩存中多個用戶的權(quán)限就會導(dǎo)致權(quán)限的更新比較慢、效率比較低的問題,因此,通過本申請,在當(dāng)前用戶需要驗(yàn)證權(quán)限的時候判斷當(dāng)前用戶的權(quán)限是否被修改,并在當(dāng)前用戶的權(quán)限被修改時更新服務(wù)器緩存中當(dāng)前用戶的權(quán)限,避免了同時對緩存中多個用戶的權(quán)限更改時導(dǎo)致效率比較低的技術(shù)問題,解決了現(xiàn)有技術(shù)中修改用戶的權(quán)限時效率比較低的技術(shù)問題,達(dá)到了提高更新效率的效果。

用戶的權(quán)限可以是登錄某個網(wǎng)頁的權(quán)限,查看或使用某個功能的權(quán)限。例如,某視頻網(wǎng)站的VIP用戶可以免費(fèi)觀看電影,但是普通用戶觀看電影需要繳費(fèi)。在某一個用戶或者一批用戶需要開通VIP會員身份時,同時開通他們的權(quán)限會導(dǎo)致效率比較低的問題。但是采用本申請的方案,可以在某個會員觀看收費(fèi)電影之前,驗(yàn)證該用戶的 觀看權(quán)限時,并在修改標(biāo)志位指示需要更新權(quán)限時對其權(quán)限進(jìn)行更新,這樣就使得更新權(quán)限的動作不會同時進(jìn)行,也就避免了同時更新緩存中多個用戶的權(quán)限時效率比較低的技術(shù)問題,達(dá)到了提高更新效率的效果。

修改某個權(quán)限的同時可能導(dǎo)致其他用戶的權(quán)限被同時修改,例如,修改某個部門的權(quán)限,則該部門下的所有用戶的權(quán)限都被修改,則對該部門下所有用戶的修改標(biāo)志位進(jìn)行標(biāo)記。此處修改某個用戶的權(quán)限與上述過程相同,不再贅述。

可選地,在某個用戶的權(quán)限被修改時,如果這個用戶正在使用系統(tǒng),那么想要使這個用戶的權(quán)限即時生效,除了數(shù)據(jù)庫中用戶的權(quán)限要做更新外,緩存的權(quán)限也要同步更新,為了同步更新緩存的權(quán)限,并且減少內(nèi)存中存儲的用戶信息所占用的內(nèi)存空間,在獲取當(dāng)前用戶的當(dāng)前用戶信息之前,方法還包括:從緩存中查詢當(dāng)前用戶信息。將查詢到的當(dāng)前用戶信息存儲到會話中,存儲到會話中的用戶信息與查詢到的緩存中的用戶信息指向同一地址,其中,在緩存中沒有查詢到當(dāng)前用戶信息時,則從數(shù)據(jù)庫中查詢當(dāng)前用戶信息,并將當(dāng)前用戶信息存儲在緩存中。

由于會話session能夠記錄用戶登錄系統(tǒng)到退出系統(tǒng)的時間段,能夠記錄用戶信息,并且session處于服務(wù)器中比較安全,避免在登錄系統(tǒng)過程中信息被篡改,因此,在校驗(yàn)用戶權(quán)限時需要從session中查找用戶信息。同時,由于session中的用戶信息是從緩存中得到的,因此,緩存中的用戶信息和session中的用戶信息指向同一地址,即在緩存和session中使用指向同一地址的用戶信息。在內(nèi)存中保存一份用戶信息,緩存和session中的用戶信息都指向內(nèi)存中保存的同一份用戶信息,即緩存和session在調(diào)用用戶信息時都是調(diào)用內(nèi)存中保存的同一份用戶信息,由于內(nèi)存中只有一份用戶信息,因此減少了內(nèi)存空間的占用。保存在session和緩存中的用戶信息可以是以該用戶信息在內(nèi)存中的地址的形式存儲。

具體如圖2所示,在用戶登錄某個系統(tǒng)時,執(zhí)行以下步驟:

步驟S202,校驗(yàn)用戶名密碼。

步驟S204,查詢緩存是否存在用戶信息。在用戶登錄過程中,如果校驗(yàn)出用戶名和密碼正確后,先查詢緩存中是否存在用戶信息。如果存在,則執(zhí)行步驟S208,否則,執(zhí)行步驟S206。

步驟S206,從數(shù)據(jù)庫查詢用戶信息并存入緩存。從數(shù)據(jù)庫中查詢該用戶的用戶信息,并將用戶信息存儲在緩存中。

步驟S208,從緩存中取出用戶信息存入session。

在用戶登錄時就將用戶信息存入session,以便在需要用戶信息時及時從session中取出用戶信息。

進(jìn)一步地,在校驗(yàn)權(quán)限時獲取當(dāng)前用戶的當(dāng)前用戶信息包括:在校驗(yàn)權(quán)限時從會話中獲取當(dāng)前用戶的當(dāng)前用戶信息。由于session允許通過將對象存儲在Web服務(wù)器的內(nèi)存中在整個用戶會話過程中保持任何對象,因此,利用session保存指向用戶信息的地址,并從session中獲取當(dāng)前用戶的當(dāng)前用戶信息。

可選地,session中可以保存用戶信息,還可以保存用戶的身份信息,即在獲取當(dāng)前用戶的當(dāng)前用戶信息之前,方法還包括:將用戶的身份信息保存在會話中。獲取當(dāng)前用戶的當(dāng)前用戶信息包括:從會話中獲取當(dāng)前用戶的身份信息,并按照當(dāng)前用戶的身份信息從緩存中查找當(dāng)前用戶的用戶信息。

在檢驗(yàn)權(quán)限時需要獲取當(dāng)前用戶的當(dāng)前用戶信息,可以先獲取當(dāng)前用戶的身份信息,即身份ID。利用該身份ID去緩存中查找當(dāng)前用戶的用戶信息。

可選地,方法還包括:接收對當(dāng)前用戶進(jìn)行修改的修改指令,修改指令用于指示更改當(dāng)前用戶的修改標(biāo)志位;按照指令對緩存中的當(dāng)前用戶的修改標(biāo)志位進(jìn)行更改,以使更改后的修改標(biāo)志位指示當(dāng)前用戶的權(quán)限信息為有修改。

在修改標(biāo)志位指示用戶權(quán)限有修改時,該修改標(biāo)志位可以用true表示;在修改標(biāo)志位指示用戶權(quán)限無修改時,該修改標(biāo)志位可以用false表示。

當(dāng)前用戶可以是主動修改其權(quán)限的一個或多個用戶,也可以是修改某一個用戶權(quán)限時其他用戶權(quán)限同時修改的被動修改的一個或多個用戶。修改用戶權(quán)限時并不同步更新緩存中的用戶權(quán)限,而是對修改標(biāo)志位進(jìn)行更改,對于有修改的用戶的修改標(biāo)志位更改為有修改。通過該修改標(biāo)志位,在校驗(yàn)權(quán)限時就可以根據(jù)修改標(biāo)志位是true還是false判斷是否需要更新該用戶的權(quán)限,并在修改標(biāo)志位指示該用戶的權(quán)限為有修改時,更新用戶的權(quán)限,以使校驗(yàn)的權(quán)限是最新的權(quán)限。

另外,在修改用戶權(quán)限的過程中,為了避免多個管理員同時指示對同一個用戶的權(quán)限進(jìn)行修改導(dǎo)致的修改錯誤或者混亂,在修改某個用戶的權(quán)限時,可以對其進(jìn)行同步,將對該用戶的修改權(quán)限鎖住,使其他管理員無法同時修改該用戶的權(quán)限,也就保證了修改過程中不會出錯。在修改用戶權(quán)限后執(zhí)行用戶權(quán)限持久化操作,將修改后的用戶權(quán)限保存在數(shù)據(jù)庫中。

如圖3所示,修改用戶權(quán)限時包括如下步驟:

步驟S302,修改用戶權(quán)限,即接收修改用戶權(quán)限的指令,并按照指令修改數(shù)據(jù)庫 中記錄的用戶的權(quán)限,該指令可以由權(quán)限管理員發(fā)出。

步驟S304,查找所有被影響到的用戶ID。

步驟S306,從緩存中取出用戶ID對應(yīng)的用戶信息。

步驟S308,同步用戶信息,即避免多個管理員同時對一個用戶的權(quán)限進(jìn)行修改。

步驟S310,標(biāo)記用戶信息的已更改標(biāo)志位,即將緩存中用戶的修改標(biāo)識為更改為有修改。

通過上述實(shí)施例,修改權(quán)限時只對被影響的用戶信息做有修改的標(biāo)識而不在此時刷新,即不在此時更新緩存中所有用戶的權(quán)限信息,這樣大大縮短了修改權(quán)限操作的相應(yīng)時間,并且如果此時用戶的線程正在使用這個用戶信息做權(quán)限校驗(yàn),也不會引起因?yàn)橥綄?dǎo)致的阻塞。

可選地,在更新緩存中當(dāng)前用戶的權(quán)限信息之后,方法還包括:更改當(dāng)前用戶的修改標(biāo)志位,以使當(dāng)前用戶的修改標(biāo)志位指示當(dāng)前用戶的權(quán)限信息為無修改。更新用戶的權(quán)限信息之后,同時修改用戶的修改標(biāo)志位為無修改,那么,在用戶需要再次驗(yàn)證權(quán)限時,根據(jù)修改標(biāo)志位的指示就不需要再次更新用戶權(quán)限了,無需重復(fù)更新用戶的權(quán)限,提高了校驗(yàn)的效率。

具體地,如圖4所示,包括如下步驟:

步驟S402,從session中取出當(dāng)前用戶信息。

步驟S404,判斷更新標(biāo)志位是否最新,即判斷修改標(biāo)志位是否為有修改。如果是,則執(zhí)行步驟S412;如果否,則執(zhí)行步驟S406。

步驟S406,同步用戶信息。更新用戶信息。

步驟S408,查詢數(shù)據(jù)庫并更新緩存中的用戶信息。

步驟S410,更新標(biāo)志位,即將緩存中的判斷標(biāo)志位更改為無修改。

步驟S412,校驗(yàn)權(quán)限。

通過上述步驟,可以實(shí)現(xiàn)在當(dāng)前用戶需要驗(yàn)證權(quán)限的時候判斷當(dāng)前用戶的權(quán)限是否被修改,并在當(dāng)前用戶的權(quán)限被修改時更新緩存中當(dāng)前用戶的權(quán)限,避免了同時對緩存中多個用戶的權(quán)限更改時導(dǎo)致效率比較低的技術(shù)問題,解決了現(xiàn)有技術(shù)中修改用戶的權(quán)限時效率比較低的技術(shù)問題,達(dá)到了提高更新效率的效果。同時,由于緩存和session中的用戶信息指向內(nèi)存中的同一地址,達(dá)到了減少內(nèi)存空間占用的效果。

根據(jù)本申請實(shí)施例,還提供了一種權(quán)限的更新裝置的裝置實(shí)施例,該權(quán)限的更新裝置可以用于執(zhí)行上述權(quán)限的更新方法,上述權(quán)限的更新方法也可以通過該權(quán)限的更新裝置執(zhí)行。

圖5是根據(jù)本申請實(shí)施例的權(quán)限的更新裝置的示意圖。如圖5所示,該裝置包括:信息獲取單元10、標(biāo)志位獲取單元20和更新單元30。其中:

信息獲取單元10用于在校驗(yàn)權(quán)限時獲取當(dāng)前用戶的當(dāng)前用戶信息。

標(biāo)志位獲取單元20用于獲取當(dāng)前用戶信息的修改標(biāo)志位,其中,修改標(biāo)志位用于指示當(dāng)前用戶的權(quán)限信息為有修改或者無修改。

更新單元30用于在修改標(biāo)志位指示當(dāng)前用戶的權(quán)限信息為有修改時,更新緩存中當(dāng)前用戶的權(quán)限信息。

在當(dāng)前用戶需要校驗(yàn)權(quán)限時,獲取該用戶的當(dāng)前用戶信息,并獲取該用戶的修改標(biāo)志位,以判斷當(dāng)前用戶的權(quán)限是否有修改,如果當(dāng)前用戶的修改標(biāo)志位指示當(dāng)前用戶的權(quán)限有修改,則更新服務(wù)器的緩存中當(dāng)前用戶的權(quán)限信息。由于修改一個用戶的權(quán)限可能會導(dǎo)致多個用戶的權(quán)限都被修改,如果同時更新緩存中多個用戶的權(quán)限就會導(dǎo)致權(quán)限的更新比較慢、效率比較低的問題,因此,通過本申請,在當(dāng)前用戶需要驗(yàn)證權(quán)限的時候判斷當(dāng)前用戶的權(quán)限是否被修改,并在當(dāng)前用戶的權(quán)限被修改時更新緩存中當(dāng)前用戶的權(quán)限,避免了同時對緩存中多個用戶的權(quán)限更改時導(dǎo)致效率比較低的技術(shù)問題,解決了現(xiàn)有技術(shù)中修改用戶的權(quán)限時效率比較低的技術(shù)問題,達(dá)到了提高更新效率的效果。

用戶的權(quán)限可以是登錄某個網(wǎng)頁的權(quán)限,查看或使用某個功能的權(quán)限。例如,某視頻網(wǎng)站的VIP用戶可以免費(fèi)觀看電影,但是普通用戶觀看電影需要繳費(fèi)。在某一個用戶或者一批用戶需要開通VIP會員身份時,同時開通他們的權(quán)限會導(dǎo)致效率比較低的問題。但是采用本申請的方案,可以在某個會員觀看收費(fèi)電影之前,驗(yàn)證該用戶的觀看權(quán)限時,并在修改標(biāo)志位指示需要更新權(quán)限時對其權(quán)限進(jìn)行更新,這樣就使得更新權(quán)限的動作不會同時進(jìn)行,也就避免了同時更新緩存中多個用戶的權(quán)限時效率比較低的技術(shù)問題,達(dá)到了提高更新效率的效果。

可選地,在某個用戶的權(quán)限被修改時,如果這個用戶正在使用系統(tǒng),那么想要使這個用戶的權(quán)限即時生效,除了數(shù)據(jù)庫中用戶的權(quán)限要做更新外,緩存的權(quán)限也要同步更新,為了同步更新緩存的權(quán)限,并且減少內(nèi)存中存儲的用戶信息所占用的內(nèi)存空間,裝置還包括:查詢單元,用于在獲取當(dāng)前用戶的當(dāng)前用戶信息之前,從緩存中查詢當(dāng)前用戶信息;存儲單元,用于將查詢到的當(dāng)前用戶信息存儲到會話中,其中,存 儲到會話中的當(dāng)前用戶信息與查詢到的緩存中的用戶信息指向同一地址,其中,在緩存中沒有查詢到當(dāng)前用戶信息時,則從數(shù)據(jù)庫中查詢當(dāng)前用戶信息,并將當(dāng)前用戶信息存儲在緩存中。

由于session能夠記錄用戶登錄系統(tǒng)到退出系統(tǒng)的時間段,能夠記錄用戶信息,并且session處于服務(wù)器中比較安全,避免在登錄系統(tǒng)過程中信息被篡改,因此,在校驗(yàn)用戶權(quán)限時需要從session中查找用戶信息。同時,由于session中的用戶信息是從緩存中得到的,因此,緩存中的用戶信息和session中的用戶信息指向同一地址,即在緩存和session中使用指向同一地址的用戶信息。在內(nèi)存中保存一份用戶信息,緩存和session中的用戶信息都指向內(nèi)存中保存的同一份用戶信息,即緩存和session在調(diào)用用戶信息時都是調(diào)用內(nèi)存中保存的同一份用戶信息,由于內(nèi)存中只有一份用戶信息,因此減少了內(nèi)存空間的占用。保存在session和緩存中的用戶信息可以是以該用戶信息在內(nèi)存中的地址的形式存儲。

進(jìn)一步地,信息獲取單元還用于在校驗(yàn)權(quán)限時從會話中獲取當(dāng)前用戶的當(dāng)前用戶信息。由于session允許通過將對象存儲在Web服務(wù)器的內(nèi)存中在整個用戶會話過程中保持任何對象,因此,利用session保存指向用戶信息的地址,并從session中獲取當(dāng)前用戶的當(dāng)前用戶信息。

可選地,session中可以保存用戶信息,還可以保存用戶的身份信息,即裝置還包括:接收單元,用于在獲取當(dāng)前用戶信息的修改標(biāo)志位之前,接收對當(dāng)前用戶進(jìn)行修改的修改指令,修改指令用于指示更改當(dāng)前用戶的修改標(biāo)志位;第一更改單元,用于按照指令對緩存中的當(dāng)前用戶的修改標(biāo)志位進(jìn)行更改,以使標(biāo)記后的修改標(biāo)志位指示當(dāng)前用戶的權(quán)限信息為有修改。

在修改標(biāo)志位指示用戶權(quán)限有修改時,該修改標(biāo)志位可以用true表示;在修改標(biāo)志位指示用戶權(quán)限無修改時,該修改標(biāo)志位可以用false表示。

當(dāng)前用戶可以是主動修改其權(quán)限的一個或多個用戶,也可以是修改某一個用戶權(quán)限時其他用戶權(quán)限同時修改的被動修改的一個或多個用戶。修改用戶權(quán)限時并不同步更新緩存中的用戶權(quán)限,而是對修改標(biāo)志位進(jìn)行更改,對于有修改的用戶的修改標(biāo)志位更改為有修改。通過該修改標(biāo)志位,在校驗(yàn)權(quán)限時就可以根據(jù)修改標(biāo)志位是true還是false判斷是否需要更新該用戶的權(quán)限,并在修改標(biāo)志位指示該用戶的權(quán)限為有修改時,更新用戶的權(quán)限,以使校驗(yàn)的權(quán)限是最新的權(quán)限。

另外,在修改用戶權(quán)限的過程中,為了避免多個管理員同時指示對同一個用戶的權(quán)限進(jìn)行修改導(dǎo)致的修改錯誤或者混亂,在修改某個用戶的權(quán)限時,可以對其進(jìn)行同 步,將對該用戶的修改權(quán)限鎖住,使其他管理員無法同時修改該用戶的權(quán)限,也就保證了修改過程中不會出錯。在修改用戶權(quán)限后執(zhí)行用戶權(quán)限持久化操作,將修改后的用戶權(quán)限保存在數(shù)據(jù)庫中。

通過上述實(shí)施例,修改權(quán)限時只對被影響的用戶信息做有修改的標(biāo)識而不在此時刷新,即不在此時同時更新緩存中所有用戶的權(quán)限信息,這樣大大縮短了修改權(quán)限操作的相應(yīng)時間,并且如果此時用戶的線程正在使用這個用戶信息做權(quán)限校驗(yàn),也不會引起因?yàn)橥綄?dǎo)致的阻塞。

可選地,裝置還包括:第二更改單元,用于在更新緩存中當(dāng)前用戶的權(quán)限信息之后,更改當(dāng)前用戶的修改標(biāo)志位,以使當(dāng)前用戶的修改標(biāo)志位指示當(dāng)前用戶的權(quán)限信息為無修改。

更新用戶的權(quán)限信息之后,同時修改用戶的修改標(biāo)志位為無修改,那么,在用戶需要再次驗(yàn)證權(quán)限時,根據(jù)修改標(biāo)志位的指示就不需要再次更新用戶權(quán)限了,無需重復(fù)更新用戶的權(quán)限,提高了校驗(yàn)的效率。

通過上述實(shí)施例,可以實(shí)現(xiàn)在當(dāng)前用戶需要驗(yàn)證權(quán)限的時候判斷當(dāng)前用戶的權(quán)限是否被修改,并在當(dāng)前用戶的權(quán)限被修改時更新緩存中當(dāng)前用戶的權(quán)限,避免了同時對緩存中多個用戶的權(quán)限更改時導(dǎo)致效率比較低的技術(shù)問題,解決了現(xiàn)有技術(shù)中修改用戶的權(quán)限時效率比較低的技術(shù)問題,達(dá)到了提高更新效率的效果。同時,由于緩存和session中的用戶信息指向內(nèi)存中的同一地址,達(dá)到了減少內(nèi)存空間占用的效果。

上述本申請實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。

在本申請的上述實(shí)施例中,對各個實(shí)施例的描述都各有側(cè)重,某個實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。

在本申請所提供的幾個實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本申請各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。

所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計(jì)算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可為個人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

以上所述僅是本申請的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本申請?jiān)淼那疤嵯?,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本申請的保護(hù)范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1