專(zhuān)利名稱(chēng):多策略支持的安全網(wǎng)頁(yè)標(biāo)簽庫(kù)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)信息安全技術(shù),具體涉及一種基于訪問(wèn)控制的Web 頁(yè)面安全標(biāo)簽庫(kù),該系統(tǒng)是對(duì)現(xiàn)有的Web頁(yè)面標(biāo)簽庫(kù)的改進(jìn),能夠?qū)eb 頁(yè)面上的各種頁(yè)面元素進(jìn)行安全控制,根據(jù)各個(gè)網(wǎng)站對(duì)用戶(hù)的授權(quán),頁(yè)面 元素會(huì)針對(duì)用戶(hù)的權(quán)限顯示出特定的內(nèi)容。
背景技術(shù):
隨著軟件設(shè)計(jì)技術(shù)的不斷發(fā)展和提高,尤其是針對(duì)Web應(yīng)用開(kāi)發(fā)的效 率和敏捷靈活性的要求越來(lái)越高,快速應(yīng)用開(kāi)發(fā)技術(shù)(RAD, Rapid Application Development)日益成為實(shí)際工程開(kāi)發(fā)領(lǐng)域的熱點(diǎn)技術(shù)。RAD的 核心思想是通過(guò)一整套可重用的組件來(lái)開(kāi)發(fā)出功能強(qiáng)大的應(yīng)用程序。人們 熟知的Visual Basic、 PowerBuilder以及Dephi等都是利用了 RAD的組件重 用思想從而大大地提高了應(yīng)用程序的開(kāi)發(fā)效率,使得原本復(fù)雜繁瑣的用戶(hù) 界面設(shè)計(jì)以及數(shù)據(jù)訪問(wèn)實(shí)現(xiàn)過(guò)程大大簡(jiǎn)化。
訪問(wèn)控制技術(shù)在提高資源安全性的同時(shí),也為Web頁(yè)面的開(kāi)發(fā)設(shè)置了 障礙。原本可以直接用頁(yè)面的模板、腳本、指令以及動(dòng)作元素就可以實(shí)現(xiàn) 的頁(yè)面顯示,現(xiàn)在要花上很多的時(shí)間來(lái)開(kāi)發(fā)與用戶(hù)權(quán)限相關(guān)的控制邏輯, 而且Web系統(tǒng)的權(quán)限控制往往體現(xiàn)在頁(yè)面元素的可見(jiàn)與不可見(jiàn),可用與不 可用,以及顯示用戶(hù)權(quán)限許可范圍內(nèi)可見(jiàn)的內(nèi)容上。實(shí)現(xiàn)Web系統(tǒng)權(quán)限控 制的程序代碼往往具有很強(qiáng)的可重用性,而且占據(jù)了整個(gè)Web系統(tǒng)設(shè)計(jì)與 開(kāi)發(fā)近30%的工作量。如果Web系統(tǒng)業(yè)務(wù)流程復(fù)雜,而且功能模塊繁多, 那么權(quán)限控制部分的代碼量也會(huì)隨之增加。并且這部分代碼重用性大,不同的Web系統(tǒng),或者是同一 Web系統(tǒng)的不同功能模塊上也會(huì)出現(xiàn)重復(fù)性的 代碼,給開(kāi)發(fā)人員帶來(lái)許多額外的負(fù)擔(dān)。
傳統(tǒng)Web系統(tǒng)權(quán)限控制部分開(kāi)發(fā)流程包含以下步驟
(1) 定義系統(tǒng)中受保護(hù)的資源清單。
(2) 定義系統(tǒng)中的用戶(hù)以及用戶(hù)組。
(3) 根據(jù)用戶(hù)和資源,定義系統(tǒng)中的訪問(wèn)控制策略,包括權(quán)限以及角色。
(4) 針對(duì)Web系統(tǒng)開(kāi)發(fā)頁(yè)面過(guò)濾器,或直接對(duì)頁(yè)面初始化部分進(jìn)行編碼, 根據(jù)訪問(wèn)控制策略限制用戶(hù)對(duì)頁(yè)面的訪問(wèn)。
這部分開(kāi)發(fā)與系統(tǒng)的業(yè)務(wù)流程相對(duì)獨(dú)立,但是現(xiàn)有的有權(quán)限管理的 Web系統(tǒng)都在重復(fù)以上的開(kāi)發(fā)。首先,這種開(kāi)發(fā)給設(shè)計(jì)人員和程序編制人 員帶來(lái)了重復(fù)的,不必要工作量,增加的系統(tǒng)的開(kāi)發(fā)成本。其次,給系統(tǒng) 和代碼的維護(hù)帶來(lái)了不必要的困難。
由美國(guó)Interface21公司于2004年提出的Acegi(Spring Security)項(xiàng)目, 如今已成為Spring框架下取代原生Java EE安全編程模型的安全框架。其 支持Java EE規(guī)范給定的各種人政策略,主要包括基于表單(FORM)認(rèn)證、 基于BASIC認(rèn)證、基于摘要(DIGEST)認(rèn)證、基于X.509(CLIENT-CERT)認(rèn) 證。保護(hù)HTTP請(qǐng)求,即Web資源;保護(hù)服務(wù)層的業(yè)務(wù)方法,可針對(duì)任意 受管POJO;保護(hù)領(lǐng)域?qū)ο?Domain Instance);具有靈活的傳輸通道安全性, SSL/TSL;支持安全性上下文的遠(yuǎn)程傳播,透明傳播;提供JavaEE容器適 配器認(rèn)證,支持Tomcat、 JBoss、 Resin、 Jetty等。但是沒(méi)有提供控件級(jí)的 細(xì)粒度訪問(wèn)控制;實(shí)際工程中可能遇到RBAC需要與其他機(jī)制配合,Acegi 缺乏對(duì)策略集成的支持。不能滿(mǎn)足安全等級(jí)等強(qiáng)制訪問(wèn)控制需求,對(duì)數(shù)據(jù) 資源的保護(hù)主要依賴(lài)于對(duì)Web頁(yè)面、業(yè)務(wù)方法或領(lǐng)域的保護(hù),仍不夠靈活。 安全標(biāo)簽僅便于提供認(rèn)證授權(quán)信息的收集和使用,除此沒(méi)有更多意義
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種多策略支持的安全Java Web應(yīng)用頁(yè)面標(biāo)簽 庫(kù)系統(tǒng),該系統(tǒng)能對(duì)Web頁(yè)面元素提供控件級(jí)的細(xì)粒度訪問(wèn)控制,具有認(rèn) 證方式靈活、兼容集中認(rèn)證服務(wù)認(rèn)證、組件設(shè)計(jì)和重用性強(qiáng)的特點(diǎn)。
本發(fā)明提供的多策略支持的安全Java Web應(yīng)用頁(yè)面標(biāo)簽庫(kù)系統(tǒng),其特 征在于該系統(tǒng)包括安全登錄模塊、安全上下文服務(wù)模塊、策略定義模塊、 Web安全服務(wù)器組件、Web安全響應(yīng)生成器和安全標(biāo)簽庫(kù);
安全標(biāo)簽庫(kù)中定義有一套能夠在各種Java Web網(wǎng)頁(yè)中導(dǎo)入的安全標(biāo)
簽;
安全登錄模塊用于提供對(duì)兩種登錄方式的支持-基于安全登錄組件的單 域認(rèn)證方式和CAS單點(diǎn)登錄的兼容方式;安全登錄模塊負(fù)責(zé)用戶(hù)身份認(rèn)證, 通過(guò)認(rèn)證的用戶(hù)為合法用戶(hù);安全登錄模塊所控制的單點(diǎn)登錄客戶(hù)端部署 在受控資源的策略定義模塊所定義的策略文檔中;訪問(wèn)受安全登錄模塊控 制的節(jié)點(diǎn)受控資源的用戶(hù)必須經(jīng)過(guò)單點(diǎn)登錄服務(wù)器端的安全認(rèn)證;安全登 錄模塊接收用戶(hù)的用戶(hù)名和密碼的輸入,進(jìn)行認(rèn)證,產(chǎn)生認(rèn)證結(jié)果,如果 認(rèn)證通過(guò),安全登錄模塊根據(jù)用戶(hù)請(qǐng)求的頁(yè)面鏈接將該用戶(hù)認(rèn)證通過(guò)標(biāo)識(shí) 發(fā)送給安全上下文服務(wù)模塊;
安全上下文服務(wù)模塊用于初始化登錄用戶(hù)的身份信息,并依據(jù)策略定 義模塊的配置,針對(duì)不同授權(quán)策略,生成并存儲(chǔ)相應(yīng)的激活角色信息、安 全級(jí)別以及受管控件訪問(wèn)策略定位標(biāo)識(shí)符,提供給相應(yīng)的Web安全服務(wù)器 組件使用;
策略定義模塊用于負(fù)責(zé)定義并管理基于安全標(biāo)簽的訪問(wèn)控制的一套規(guī) 則,通過(guò)對(duì)xml格式的策略定義文檔進(jìn)行相應(yīng)安全規(guī)則的設(shè)置及存取,該 模塊負(fù)責(zé)提供對(duì)受管頁(yè)面關(guān)鍵控件的訪問(wèn)控制規(guī)則,用于描述用戶(hù)、角色、 權(quán)限、安全級(jí)以及這些安全元素之間的關(guān)系;
Web安全服務(wù)器組件用于解析安全標(biāo)簽庫(kù)的安全標(biāo)簽,在響應(yīng)客戶(hù)端請(qǐng)求時(shí)實(shí)現(xiàn)數(shù)據(jù)的安全綁定并根據(jù)安全上下文服務(wù)模塊提供的安全配置動(dòng)
態(tài)加載響應(yīng)頁(yè)面的各種安全屬性,將受控后的組件狀態(tài)提供給Web安全響 應(yīng)生成器;
Web安全響應(yīng)生成器裉據(jù)Web安全服務(wù)器組件提供的狀態(tài)信息,決定 相應(yīng)頁(yè)面最后的呈現(xiàn)界面,將安全標(biāo)簽的格式轉(zhuǎn)換為相應(yīng)的目標(biāo)標(biāo)識(shí)語(yǔ)言 格式,為瀏覽器返回統(tǒng)一的安全響應(yīng)頁(yè)面。
上述結(jié)構(gòu)的系統(tǒng)能夠提供系統(tǒng)中受安全訪問(wèn)控制的各種頁(yè)面標(biāo)簽,基 本上涵蓋JSP標(biāo)簽庫(kù)的所有頁(yè)面標(biāo)簽的表現(xiàn)形式,為開(kāi)發(fā)者提供一套集安 全訪問(wèn)控制功能在內(nèi)的,高效、完整的頁(yè)面開(kāi)發(fā)標(biāo)簽庫(kù)。本系統(tǒng)針對(duì)安全 Java Web應(yīng)用開(kāi)發(fā)提出一套完整的RAD解決方案,包括設(shè)計(jì)實(shí)現(xiàn)一組可重 用的安全組件,用于封裝帶有安全屬性的用戶(hù)界面顯示和數(shù)據(jù)訪問(wèn)功能, 同時(shí)提供相應(yīng)的安全Web標(biāo)簽庫(kù)支持,并利用渲染技術(shù)實(shí)現(xiàn)對(duì)安全組件標(biāo) 簽的標(biāo)準(zhǔn)HTML解析,使之適用于絕大部分的Web開(kāi)發(fā)環(huán)境。在安全組件 提供安全屬性的基礎(chǔ)之上,利用XML語(yǔ)言定義并描述相應(yīng)的安全策略部署 文檔,同時(shí)支持基于角色的訪問(wèn)控制(RBAC)以及強(qiáng)制訪問(wèn)控制(MAC) 機(jī)制,并提供通過(guò)關(guān)系數(shù)據(jù)庫(kù)(RDBMS)定義安全策略的擴(kuò)展支持,實(shí)現(xiàn) 一套靈活便捷的基于組件粒度的安全訪問(wèn)控制實(shí)現(xiàn)機(jī)制。具體而言,本發(fā) 明具有如下優(yōu)點(diǎn)-
(1) 支持快速應(yīng)用開(kāi)發(fā)開(kāi)發(fā)者只需要在頁(yè)面中使用系統(tǒng)定義標(biāo)簽名 作為前綴定義其頁(yè)面所需的各種控件,不需要開(kāi)發(fā)額外的程序代碼模塊, 就可以實(shí)現(xiàn)控件級(jí)訪問(wèn)控制的需求。且標(biāo)簽使用靈活,可移植性強(qiáng)。
(2) 控件級(jí)細(xì)粒度保護(hù)傳統(tǒng)的應(yīng)用系統(tǒng)的訪問(wèn)控制粒度一般來(lái)說(shuō)不 外乎模塊級(jí)和頁(yè)面級(jí),也就是說(shuō),其策略配置一般只制定用戶(hù)對(duì)模塊的訪 問(wèn)以及用戶(hù)對(duì)頁(yè)面的訪問(wèn)規(guī)則。本系統(tǒng)可以提供控件級(jí)的細(xì)粒度控制,可 以定義控件對(duì)當(dāng)前用戶(hù)可見(jiàn)還是不可見(jiàn),可用還是不可用,以及對(duì)于當(dāng)前用戶(hù),控件應(yīng)該顯示哪些權(quán)限范圍內(nèi)可訪問(wèn)的資源。
(3) 認(rèn)證方式靈活,兼容集中認(rèn)證服務(wù)(CAS, Central Authentication Service)認(rèn)證本系統(tǒng)提供多種類(lèi)型的認(rèn)證方式,在基于安全登錄組件的單 域認(rèn)證方式中用戶(hù)可以選擇以身份證書(shū)的方式登錄,也可以選擇用用戶(hù)名 和密碼登錄。同時(shí)本系統(tǒng)兼容CAS認(rèn)證,不需要開(kāi)發(fā)人員做額外的編程工 作,多個(gè)應(yīng)用系統(tǒng)就可以使用本標(biāo)簽庫(kù)實(shí)現(xiàn)多系統(tǒng)間的單點(diǎn)登錄。
(4) 組件設(shè)計(jì),重用性強(qiáng)本系統(tǒng)的設(shè)計(jì)都是基于組件開(kāi)發(fā),每個(gè)功能 模塊均獨(dú)立成組件,可重用性強(qiáng)。各模塊都提供了充分的API供調(diào)用,能 夠比較方便地適應(yīng)開(kāi)發(fā)人員根據(jù)需求進(jìn)行二次開(kāi)發(fā)。
圖1是本發(fā)明系統(tǒng)的結(jié)構(gòu)示意圖。
圖2是本發(fā)明系統(tǒng)中系統(tǒng)流程圖。
圖3是本發(fā)明系統(tǒng)的一種具體實(shí)施方式
的結(jié)構(gòu)示意圖。
圖4是本發(fā)明系統(tǒng)中系統(tǒng)信息存儲(chǔ)結(jié)構(gòu)示意圖。
圖5是本發(fā)明系統(tǒng)中用戶(hù)信息數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)示意圖。
圖6是本發(fā)明系統(tǒng)中用戶(hù)組到用戶(hù)的指派關(guān)系數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)示意圖。
圖7是本發(fā)明系統(tǒng)中角色到用戶(hù)組的指派關(guān)系數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)示意圖。
圖8是本發(fā)明系統(tǒng)中對(duì)控件的操作信息數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)示意圖。
圖9是本發(fā)明系統(tǒng)中控件操作到角色的指派關(guān)系數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)例對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。 如圖1所示,本發(fā)明提供的提供多策略支持的安全Java Web應(yīng)用頁(yè)面 標(biāo)簽庫(kù)系統(tǒng)包括安全登錄模塊100、安全上下文服務(wù)模塊200、策略定義模 塊300、 Web安全服務(wù)器組件400、 Web安全響應(yīng)生成器500和安全標(biāo)簽庫(kù)600。安全標(biāo)簽庫(kù)600定義了一套可以在各種Java Web網(wǎng)頁(yè)中導(dǎo)入的安全標(biāo) 簽,通過(guò)直接在頁(yè)面中定義標(biāo)簽庫(kù)所對(duì)應(yīng)的安全組件,開(kāi)發(fā)者能夠快速直 觀的開(kāi)發(fā)出滿(mǎn)足各種實(shí)際工程性安全需求的Web應(yīng)用模塊,同時(shí)通過(guò)在策 略文檔中對(duì)各安全標(biāo)簽的唯一安全I(xiàn)D進(jìn)行設(shè)置,能夠方便的定義各種基于 控件粒度的安全規(guī)則。安全登錄模塊100同時(shí)提供對(duì)兩種登錄方式的支持-基于安全登錄組件 的單域認(rèn)證方式和CAS單點(diǎn)登錄的兼容方式。安全登錄模塊100負(fù)責(zé)用戶(hù) 身份認(rèn)證,通過(guò)認(rèn)證的用戶(hù)為合法用戶(hù);安全登錄模塊100所控制的單點(diǎn) 登錄客戶(hù)端部署在受控資源的策略定義模塊300所定義的策略文檔中;訪 問(wèn)受安全登錄模塊100控制的節(jié)點(diǎn)受控資源的用戶(hù)必須經(jīng)過(guò)單點(diǎn)登錄服務(wù) 器端的安全認(rèn)證。本發(fā)明可以采用不同的架構(gòu)實(shí)現(xiàn)單點(diǎn)登錄(1)集中式 認(rèn)證服務(wù)器的方式建立集中式認(rèn)證服務(wù)器并將單點(diǎn)登錄客戶(hù)端部署在各 個(gè)資源網(wǎng)站中即可實(shí)現(xiàn)單點(diǎn)登錄。服務(wù)器端維護(hù)全局用戶(hù)名密碼表以實(shí)現(xiàn) 統(tǒng)一認(rèn)證。(2)用戶(hù)密碼映射方式在單點(diǎn)登錄服務(wù)器維護(hù)一張用戶(hù)映射 表,將同一用戶(hù)在不同資源網(wǎng)站的不同用戶(hù)名進(jìn)行映射,即可實(shí)現(xiàn)單點(diǎn)登 錄功能。安全登錄模塊100接收用戶(hù)的用戶(hù)名和密碼的輸入,進(jìn)行認(rèn)證,產(chǎn)生 認(rèn)證結(jié)果,如果認(rèn)證通過(guò),安全登錄模塊100根據(jù)用戶(hù)請(qǐng)求的頁(yè)面鏈接將 該用戶(hù)認(rèn)證通過(guò)標(biāo)識(shí)發(fā)送給安全上下文服務(wù)模塊200。安全上下文服務(wù)模塊200初始化登錄用戶(hù)的身份信息,并依據(jù)策略定 義模塊300的配置,針對(duì)不同授權(quán)策略,生成并存儲(chǔ)相應(yīng)的激活角色信息、 安全級(jí)別以及受管控件訪問(wèn)策略定位標(biāo)識(shí)符,以供相應(yīng)的Web安全服務(wù)器 組件400使用。策略定義模塊300負(fù)責(zé)定義并管理"基于安全標(biāo)簽的訪問(wèn)控制"的一 套規(guī)則,通過(guò)對(duì)xml格式的策略定義文檔進(jìn)行相應(yīng)安全規(guī)則的設(shè)置及存取,該模塊負(fù)責(zé)提供對(duì)受管頁(yè)面關(guān)鍵控件的訪問(wèn)控制規(guī)則,用于描述用戶(hù)、角 色、權(quán)限、安全級(jí)以及這些安全元素之間的關(guān)系。Web安全服務(wù)器組件400用于解析安全標(biāo)簽庫(kù)600的安全標(biāo)簽,在響 應(yīng)客戶(hù)端請(qǐng)求時(shí)實(shí)現(xiàn)數(shù)據(jù)的安全綁定并根據(jù)安全上下文服務(wù)模塊200提供 的安全配置動(dòng)態(tài)加載響應(yīng)頁(yè)面的各種安全屬性,將受控后的組件狀態(tài)提供 給Web安全響應(yīng)生成器500。Web安全響應(yīng)生成器500根據(jù)Web安全服務(wù)器組件提供的狀態(tài)信息, 決定相應(yīng)頁(yè)面最后的呈現(xiàn)界面,將安全標(biāo)簽的格式轉(zhuǎn)換為相應(yīng)的目標(biāo)標(biāo)識(shí) 語(yǔ)言格式(如HTML標(biāo)簽),最終為瀏覽器返回統(tǒng)一的安全響應(yīng)頁(yè)面。整個(gè)系統(tǒng)流程如圖2所示,包括(1) 對(duì)用戶(hù)信息進(jìn)行配置管理,其過(guò)程包括用戶(hù)描述流程針對(duì)的對(duì)象是管理員用戶(hù),管理員用戶(hù)通過(guò)系統(tǒng)提供的 接口對(duì)具有權(quán)限的用戶(hù)進(jìn)行配置管理,具體流程如下(1.1) 管理員使用安全登錄模塊ioo輸入用戶(hù)名密碼。(1.2) 安全登錄模塊100將登錄信息與策略定義模塊300中提供的用戶(hù) 身份信息進(jìn)行比對(duì),如果認(rèn)證通過(guò),則由安全登錄模塊100從策略定義模 塊300獲取該管理員用戶(hù)的詳細(xì)信息(包括用戶(hù)組ID等),并對(duì)其開(kāi)放管 理員權(quán)限(即可對(duì)該管理員所屬網(wǎng)站內(nèi)的用戶(hù)權(quán)限進(jìn)行描述與修改),進(jìn)入 步驟(1.3),否則返回登錄失敗信息,退出流程。(1.3) 管理員通過(guò)策略定義模塊300配置用戶(hù)信息(包括用戶(hù)名、密碼、 用戶(hù)所在網(wǎng)站、用戶(hù)組等),并將其保存在xml格式的策略定義文檔中。管 理員通過(guò)策略定義模塊300對(duì)用戶(hù)信息、用戶(hù)組信息以及站點(diǎn)信息進(jìn)行配 置和管理,最終將這些配置存放至xml格式的策略定義文檔中。(2) 根據(jù)策略定義模塊300的配置動(dòng)態(tài)加載響應(yīng)頁(yè)面的各種安全屬性, 生成當(dāng)前用戶(hù)最終見(jiàn)到的頁(yè)面,其過(guò)程包括頁(yè)面顯示流程中主體是Web安全響應(yīng)生成器500。根據(jù)相應(yīng)服務(wù)器組 件400提供的狀態(tài)信息,將安全標(biāo)簽庫(kù)600提供的安全標(biāo)簽的格式轉(zhuǎn)換為 相應(yīng)的目標(biāo)標(biāo)識(shí)語(yǔ)言HTML格式,決定相應(yīng)頁(yè)面最后的呈現(xiàn)界面,具體流 程如下(2.1) 開(kāi)發(fā)人員在開(kāi)發(fā)滿(mǎn)足各種實(shí)際工程性安全需求的Web應(yīng)用模塊 時(shí),在頁(yè)面中定義標(biāo)簽庫(kù)600所提供的安全標(biāo)簽,同時(shí)通過(guò)在策略文檔中 對(duì)各安全標(biāo)簽的唯一安全I(xiàn)D進(jìn)行設(shè)置,定義各種基于控件粒度的安全規(guī)則, 這些安全規(guī)則通過(guò)策略定義模塊300被寫(xiě)入xml格式的策略定義文檔。(2.2) Web安全響應(yīng)生成器模塊500直接通過(guò)Web安全服務(wù)器組件400 解析安全標(biāo)簽600,在響應(yīng)客戶(hù)端請(qǐng)求時(shí)實(shí)現(xiàn)數(shù)據(jù)的安全綁定并根據(jù)策略定 義模塊300提供的相應(yīng)安全規(guī)則的配置動(dòng)態(tài)加載響應(yīng)頁(yè)面控件的各種安全 屬性。(2.3) Web安全響應(yīng)生成器模塊500根據(jù)Web安全服務(wù)器組件400中相 應(yīng)服務(wù)器組件提供的狀態(tài)信息,決定相應(yīng)頁(yè)面最后的呈現(xiàn)界面,將安全標(biāo) 簽的格式轉(zhuǎn)換為相應(yīng)的目標(biāo)標(biāo)識(shí)語(yǔ)言格式(如HTML標(biāo)簽),最終為瀏覽器 返回統(tǒng)一的安全響應(yīng)頁(yè)面。(3)向開(kāi)發(fā)人員提供頁(yè)面標(biāo)簽安全屬性定制功能,其過(guò)程包括(3.1) 頁(yè)面標(biāo)簽安全屬性定制流程針對(duì)的對(duì)象是應(yīng)用系統(tǒng)開(kāi)發(fā)人員,開(kāi) 發(fā)人員首先將標(biāo)簽庫(kù)導(dǎo)入開(kāi)發(fā)的工程,在開(kāi)發(fā)頁(yè)面時(shí)在頁(yè)面指令元素中用 taglib聲明本標(biāo)簽庫(kù)<%@ taglib uri = "taglibURT prefix="tagPrefix,,0/0>,其 中uri用來(lái)表示標(biāo)簽描述符,告訴容器如何找到標(biāo)簽描述文件和安全標(biāo)簽庫(kù) 600, prefix定義在JSP頁(yè)面中應(yīng)用此標(biāo)簽的前綴。(3.2) 在頁(yè)面中使用〈prefix:tag attribute=value .../>定義帶有訪問(wèn)控制功 能的頁(yè)面元素,其中在標(biāo)簽屬性中定義擁有標(biāo)簽訪問(wèn)權(quán)限的角色。只有當(dāng) 前用戶(hù)擁有標(biāo)簽屬性中所定義的角色時(shí),才能訪問(wèn)本標(biāo)簽內(nèi)容。角色對(duì)用 戶(hù)的指派信息通過(guò)策略定義模塊300存儲(chǔ)在xml格式的策略定義文檔中,組件400動(dòng)態(tài)加載響應(yīng)頁(yè)面受管控件 的各種安全屬性。(3.3)通過(guò)策略定義模塊300在xml格式的策略定義文檔中定義用戶(hù)與 角色的對(duì)應(yīng)關(guān)系,本系統(tǒng)兼容基于角色的訪問(wèn)控制規(guī)則以及強(qiáng)制訪問(wèn)控制 規(guī)則。各種控件資源的訪問(wèn)控制權(quán)限通過(guò)角色指派到用戶(hù),頁(yè)面上的控件 屬性中定義控件的訪問(wèn)角色。這種方式的好處在于如果系統(tǒng)龐大,用戶(hù) 數(shù)量和頁(yè)面控件數(shù)量巨大,但是用戶(hù)的角色數(shù)量是有限的,這樣就可以極 大程度地降低策略定義模塊300中所定義的策略文檔的復(fù)雜度。同時(shí)在本 發(fā)明中,用戶(hù)可以組織成用戶(hù)組,然后定義用戶(hù)組所擁有的角色,這樣, 即使用戶(hù)數(shù)量巨大,但是用戶(hù)組的數(shù)量是有限的,用戶(hù)組到角色的指派關(guān) 系也會(huì)是相對(duì)有限的。下面舉例具體說(shuō)明本發(fā)明應(yīng)用頁(yè)面標(biāo)簽庫(kù)系統(tǒng)中各部分的具體構(gòu)成。 如圖3所示,安全登錄模塊100包括系統(tǒng)信息管理模塊110、用戶(hù)信息 管理模塊120、用戶(hù)組信息管理模塊130和用戶(hù)認(rèn)證模塊140。系統(tǒng)信息管理模塊110為管理員提供配置系統(tǒng)信息的接口。管理員在 受控的系統(tǒng)信息管理模塊110上通過(guò)策略定義模塊300中的策略信息存取 模塊310的實(shí)現(xiàn)對(duì)資源系統(tǒng)的注冊(cè),注冊(cè)信息包括系統(tǒng)名稱(chēng)、系統(tǒng)首頁(yè) URL、系統(tǒng)的登錄URL、系統(tǒng)的訪問(wèn)控制策略及每個(gè)連接器的缺省用戶(hù)登 錄參數(shù),如圖4所示。管理員配置完畢后向策略信息存取模塊300提交對(duì) 系統(tǒng)修改信息,XML存取管理模塊350對(duì)管理員提交的配置和修改信息進(jìn) 行保存。用戶(hù)信息管理模塊120為管理員提供配置用戶(hù)信息的接口,使管理員 能夠訪問(wèn)并修改策略定義模塊300中所配置的策略定義文檔中的用戶(hù)信息。 各系統(tǒng)管理員根據(jù)系統(tǒng)信息管理模塊110中的系統(tǒng)名獲得自己系統(tǒng)的系統(tǒng) ID,并根據(jù)該系統(tǒng)ID通過(guò)用戶(hù)信息管理模塊120進(jìn)行該系統(tǒng)用戶(hù)信息的配置(即配置所有與管理員具有相同站點(diǎn)ID的用戶(hù)),并通過(guò)策略定義模塊300寫(xiě)入策略定義文檔。用戶(hù)信息具體描述方法如下用戶(hù)信息表中每個(gè)用戶(hù)擁有用戶(hù)ID、密碼、級(jí)別(若為分級(jí)訪問(wèn)控制)等屬性,如圖5所示。 管理員配置完畢后通過(guò)用戶(hù)信息管理模塊120向策略信息存取模塊310提 交對(duì)用戶(hù)信息表的修改,其中主要包括用戶(hù)名、用戶(hù)登錄密碼等,XML存 取模塊350對(duì)管理員提交的配置和修改信息進(jìn)行保存。用戶(hù)組信息管理模塊130為管理員提供描述用戶(hù)組與用戶(hù)對(duì)應(yīng)信息的 接口。對(duì)于某一開(kāi)發(fā)中的系統(tǒng),其用戶(hù)數(shù)量可能很多,訪問(wèn)控制策略也可 能不同,但是總會(huì)有許多用戶(hù)具有相同的權(quán)限,比如說(shuō)同一個(gè)科室的所有 同級(jí)別科員,在某個(gè)系統(tǒng)中的權(quán)限是一致的。就可以將同--系統(tǒng)上具有相 同權(quán)限的用戶(hù)歸為同一個(gè)用戶(hù)組。這樣,在系統(tǒng)用戶(hù)繁多,頁(yè)面控件繁多 的情況下,根據(jù)用戶(hù)權(quán)限對(duì)用戶(hù)進(jìn)行分組是相對(duì)容易的。通過(guò)用戶(hù)組描述 用戶(hù)權(quán)限的優(yōu)點(diǎn)除了描述者不需要了解系統(tǒng)的具體訪問(wèn)控制策略,還可以 降低用戶(hù)策略定義文檔的規(guī)模。 一個(gè)Web系統(tǒng)雖然擁有大量可達(dá)的URL和 用戶(hù),但可以將用戶(hù)歸屬為數(shù)量較少的用戶(hù)組,這就使資源描述成為可能。 組織良好的Web系統(tǒng)中由于大部分用戶(hù)具有相同的訪問(wèn)權(quán)限,這些用戶(hù)信 息會(huì)定位于同一個(gè)用戶(hù)組內(nèi),即使Web系統(tǒng)沒(méi)有將具有相同訪問(wèn)權(quán)限的用 戶(hù)歸為同一個(gè)用戶(hù)組,甚至訪問(wèn)控制粒度細(xì)到每個(gè)用戶(hù)的權(quán)限皆不相同, 本發(fā)明也可以對(duì)每個(gè)用戶(hù)進(jìn)行描述,提高了系統(tǒng)的靈活度。用戶(hù)組信息管理模塊130根據(jù)管理員提供的訪問(wèn)控制權(quán)限設(shè)置、歸納 用戶(hù)組信息,并通過(guò)策略信息存取模塊310將用戶(hù)組信息寫(xiě)入策略定義文 檔。管理員根據(jù)系統(tǒng)信息管理模塊110和用戶(hù)信息管理模塊120中的信息 以及系統(tǒng)的訪問(wèn)控制權(quán)限來(lái)設(shè)置用戶(hù)組信息表。用戶(hù)組信息表中的屬性有: 用戶(hù)ID,用戶(hù)組ID等,如圖6所示。用戶(hù)和用戶(hù)組滿(mǎn)足多對(duì)多的關(guān)系,即 一個(gè)用戶(hù)可以屬于多個(gè)用戶(hù)組, 一個(gè)用戶(hù)組可以擁有多個(gè)不同的用戶(hù)。管理員設(shè)置完畢后向策略信息存取模塊310提交對(duì)用戶(hù)組信息表的修改信息, XML存取模塊350對(duì)管理員提交的用戶(hù)組設(shè)置和修改信息進(jìn)行保存。用戶(hù)認(rèn)證模塊140將用戶(hù)輸入的用戶(hù)名和密碼或身份證書(shū)等信息與策 略定義模塊300中管理的用戶(hù)信息進(jìn)行比對(duì),如果用戶(hù)驗(yàn)證通過(guò),則請(qǐng)求 用戶(hù)權(quán)限信息初始化模塊210來(lái)獲取當(dāng)前用戶(hù)在系統(tǒng)中的權(quán)限信息。安全上下文服務(wù)模塊200包括用戶(hù)權(quán)限信息初始化模塊210、角色信息 激活模塊220以及控件訪問(wèn)控制決策模塊230。用戶(hù)權(quán)限信息初始化模塊210根據(jù)用戶(hù)認(rèn)證模塊140中提供的用戶(hù)ID 在策略定義模塊300所定義的策略文檔中獲取當(dāng)前用戶(hù)所在的用戶(hù)組信息, 提供給角色激活模塊220。角色激活模塊220根據(jù)當(dāng)前用戶(hù)的用戶(hù)組信息在策略定義模塊300所 定義的策略文檔中獲取當(dāng)前用戶(hù)所有的角色信息,并激活當(dāng)前用戶(hù)所指派 的所有可激活的角色,進(jìn)一步生成激活角色信息,以供控件訪問(wèn)控制角色 模塊230使用??丶L問(wèn)控制決策模塊230根據(jù)當(dāng)前用戶(hù)的激活角色信息在策略定義 模塊300所定義的策略文檔中獲取并生成相應(yīng)的安全級(jí)別信息以及受管控 件訪問(wèn)策略定位標(biāo)識(shí)符,以供受管控件和安全標(biāo)簽使用。策略定義模塊300包括策略信息存取模塊310、角色信息管理模塊 320、用戶(hù)組角色指派信息模塊330、角色頁(yè)面控件操作指派信息模塊340 和XML存取管理模塊350。策略信息存取模塊310用來(lái)存取系統(tǒng)信息、用戶(hù)信息、用戶(hù)組信息、 用戶(hù)及用戶(hù)組配置信息、角色信息、用戶(hù)組角色指派信息和角色頁(yè)面控件 操作指派信息。角色信息管理模塊320為管理員提供配置角色信息的接口,使管理員能夠訪問(wèn)并修改策略定義模塊300所配置的策略定義文檔中的角色信息。 系統(tǒng)管理員根據(jù)系統(tǒng)信息管理模塊110中的系統(tǒng)名獲得自己系統(tǒng)的系統(tǒng) ID,并根據(jù)該系統(tǒng)ID通過(guò)角色信息管理模塊320進(jìn)行該系統(tǒng)角色信息的配 置(即配置所有與管理員具有相同站點(diǎn)ID的用戶(hù)),并通過(guò)策略定義模塊 300寫(xiě)入策略定義文檔。角色信息具體描述方法如下角色信息中每個(gè)角色 擁有角色I(xiàn)D、角色名、級(jí)別(若為分級(jí)訪問(wèn)控制)等屬性。管理員配置完 畢后通過(guò)角色信息描述模塊320向策略信息存取模塊310提交對(duì)角色信息 的修改信息,其中主要包括角色名、級(jí)別等,XML存儲(chǔ)管理模塊350對(duì)管 理員提交的配置和修改信息進(jìn)行保存。用戶(hù)組角色指派信息模塊330為管理員提供對(duì)用戶(hù)的權(quán)限指派接口, 用戶(hù)的權(quán)限通過(guò)角色的形式指派給每一個(gè)用戶(hù)組,相同用戶(hù)組中的用戶(hù)通 過(guò)所指派的角色具有對(duì)頁(yè)面中控件相同的訪問(wèn)控制權(quán)限。用戶(hù)組角色指派 信息的數(shù)據(jù)結(jié)構(gòu)如圖7所示。管理員描述完畢后通過(guò)用戶(hù)組角色指派信息 模塊330向策略信息存取模塊310提交對(duì)用戶(hù)組的角色指派的修改信息, 其中主要包括用戶(hù)組ID、角色I(xiàn)D等,XML存儲(chǔ)管理模塊350對(duì)管理員提 交的描述和修改信息進(jìn)行保存。角色頁(yè)面控件操作指派信息模塊340為管理員提供對(duì)角色的權(quán)限指派 接口,角色的權(quán)限主要體現(xiàn)在對(duì)頁(yè)面中控件的操作權(quán)限上。對(duì)控件的操作 定義的數(shù)據(jù)結(jié)構(gòu)如圖8所示。在定義了頁(yè)面控件上的各種操作后,即可為 角色指派在控件上的操作權(quán)限。角色頁(yè)面控件操作指派信息的數(shù)據(jù)結(jié)構(gòu)如 圖9所示。管理員配置完畢后通過(guò)角色頁(yè)面控件操作指派信息模塊340向 策略信息存取模塊310提交對(duì)角色權(quán)限指派的修改信息,其中主要包括角 色I(xiàn)D、頁(yè)面ID、控件ID 、操作ID等,XML存儲(chǔ)管理模塊350對(duì)管理 員提交的配置和修改信息進(jìn)行保存,保存后的頁(yè)面控制設(shè)置將在Web安全 服務(wù)組件400的安全屬性加載模塊420模塊中作為權(quán)限設(shè)置屬性被加載實(shí) 現(xiàn)。XML存儲(chǔ)管理模塊350對(duì)以上信息以XML文檔的形式進(jìn)行存儲(chǔ)。Web安全服務(wù)器組件400包括安全標(biāo)簽解析模塊410,安全屬性加載 模塊420和標(biāo)簽數(shù)據(jù)綁定模塊430。安全標(biāo)簽解析模塊410主要用來(lái)解析頁(yè)面上定義的安全標(biāo)簽及屬性。 安全標(biāo)簽用XML定義,稱(chēng)之為標(biāo)簽定義文件610。服務(wù)器端技術(shù),本發(fā)明 中指的是JSP,在HTML文件里面使用本發(fā)明中的非HTML語(yǔ)法,服務(wù) 器在這些代碼的基礎(chǔ)上創(chuàng)建和提供HTML格式的內(nèi)容。當(dāng)瀏覽器或者頁(yè)面 開(kāi)發(fā)工具如Dreamweaver等檢測(cè)到本發(fā)明中的非HTML標(biāo)簽,會(huì)調(diào)用本 發(fā)明中提供的標(biāo)簽的定義文件610來(lái)比較它們,這些文件指定瀏覽器或者 頁(yè)面開(kāi)發(fā)工具如何讀取和顯示這些標(biāo)簽。安全屬性加載模塊420將根據(jù)安全標(biāo)簽解析模塊410模塊解析出的安 全屬性來(lái)調(diào)用標(biāo)簽數(shù)據(jù)綁定模塊430。安全屬性中包括本標(biāo)簽使用的安全策 略模式、可訪問(wèn)角色信息、最小安全級(jí)別和授權(quán)用戶(hù)信息等信息,會(huì)根據(jù) 當(dāng)前用戶(hù)是否指派有本標(biāo)簽的安全屬性中所定義的角色或者擁有足夠的安 全級(jí)來(lái)顯示相應(yīng)的內(nèi)容。標(biāo)簽數(shù)據(jù)綁定模塊430能根據(jù)當(dāng)前用戶(hù)的角色信 息和安全級(jí)別來(lái)動(dòng)態(tài)綁定數(shù)據(jù)。同一控件對(duì)于不同角色和級(jí)別的用戶(hù)所提 供的數(shù)據(jù)是在運(yùn)行時(shí)動(dòng)態(tài)加載的,比如說(shuō)當(dāng)前的列表控件,當(dāng)其定義的安 全屬性為使用RBAC策略并且在其角色屬性中的定義了某個(gè)可訪問(wèn)的角色 時(shí),那么只有當(dāng)前用戶(hù)指派有該角色時(shí),系統(tǒng)才會(huì)為列表控件加載該角色 才能訪問(wèn)的資源列表;當(dāng)其定義的安全屬性為使用強(qiáng)制訪問(wèn)控制策略并且 在其授權(quán)級(jí)別中定義了訪問(wèn)數(shù)據(jù)的最小級(jí)別時(shí),那么只有當(dāng)用戶(hù)級(jí)別達(dá)到 最小安全級(jí)別以上,系統(tǒng)才會(huì)為列表控件加載相應(yīng)數(shù)據(jù),并通過(guò)根據(jù)當(dāng)前 用戶(hù)的安全級(jí)別動(dòng)態(tài)綁定資源數(shù)據(jù),使得控件列表只顯示出密級(jí)低于當(dāng)前 用戶(hù)安全級(jí)的數(shù)據(jù)。最終用戶(hù)是通過(guò)標(biāo)簽數(shù)據(jù)綁定模塊430來(lái)體驗(yàn)本發(fā)明 的功能。Web安全響應(yīng)生成器500根據(jù)相應(yīng)服務(wù)器組件提供的狀態(tài)信息,將安 全標(biāo)簽的格式轉(zhuǎn)換為相應(yīng)的目標(biāo)標(biāo)識(shí)語(yǔ)言格式(如HTML標(biāo)簽),最終為瀏 覽器返回統(tǒng)一的安全響應(yīng)頁(yè)面。每個(gè)標(biāo)簽均由相關(guān)的組件產(chǎn)生。每個(gè)組件 都有一個(gè)產(chǎn)生HTML輸出的安全響應(yīng)生成器,以反映組件的狀態(tài)。這個(gè)過(guò) 程被稱(chēng)為解碼。頁(yè)面元素對(duì)象的安全響應(yīng)生成器請(qǐng)求框架査詢(xún)表達(dá)式的唯 一 ID及當(dāng)前值。按照默認(rèn)設(shè)置,ID字符串(例如—id0:—idl之類(lèi))由框架 賦值。編碼后的頁(yè)面被傳送到瀏覽器,瀏覽器按照通常的方式顯示該頁(yè)面。安全標(biāo)簽庫(kù)600定義了一套可以在各種Java Web網(wǎng)頁(yè)中導(dǎo)入的安全標(biāo) 簽,其包括標(biāo)簽定義文件610,每個(gè)標(biāo)簽庫(kù)文件都會(huì)定義一個(gè)或者多個(gè)自定 義標(biāo)簽的名稱(chēng)、類(lèi)型、內(nèi)容模式、顯示規(guī)范和圖標(biāo),標(biāo)簽庫(kù)文件使用.xml文 件擴(kuò)展名。同時(shí)還包括一個(gè)名為tagspec的XML文件定義的標(biāo)簽規(guī)范 620。標(biāo)簽規(guī)范中定義了是否讓這個(gè)標(biāo)簽可以放置在文檔內(nèi)HTML標(biāo)簽 之間的任何位置;作為字符串界定的標(biāo)簽的起始點(diǎn)的一個(gè)分隔符;作為字 符串界定的標(biāo)簽的結(jié)束點(diǎn)的一個(gè)分隔符;是否要忽略start—string和 end_string之間的所有代碼;是否要解析該標(biāo)簽的屬性;匹配該標(biāo)簽的圖標(biāo) 的路徑和文件名;指定圖標(biāo)的像素寬度和高度,以及該標(biāo)簽是否在頁(yè)面上 可見(jiàn)。本發(fā)明提出的多策略支持安全Java Web應(yīng)用頁(yè)面標(biāo)簽庫(kù)導(dǎo)入安裝后除 了能夠完成基本的頁(yè)面HTML控件顯示功能,而且還可以根據(jù)用戶(hù)自身的 權(quán)限來(lái)顯示該用戶(hù)可見(jiàn)和可用的資源,且不需要開(kāi)發(fā)者進(jìn)行額外的編碼工作。 .以上所述為本發(fā)明的較佳實(shí)施例而已,但本發(fā)明不應(yīng)該局限于該實(shí)施 例和附圖所公開(kāi)的內(nèi)容。所以凡是不脫離本發(fā)明所公開(kāi)的精神下完成的等 效或修改,都落入本發(fā)明保護(hù)的范圍。
權(quán)利要求
1、一種多策略支持的安全Java Web應(yīng)用頁(yè)面標(biāo)簽庫(kù)系統(tǒng),其特征在于該系統(tǒng)包括安全登錄模塊(100)、安全上下文服務(wù)模塊(200)、策略定義模塊(300)、Web安全服務(wù)器組件(400)、Web安全響應(yīng)生成器(500)和安全標(biāo)簽庫(kù)(600);安全標(biāo)簽庫(kù)(600)中定義有一套能夠在各種Java Web網(wǎng)頁(yè)中導(dǎo)入的安全標(biāo)簽;安全登錄模塊(100)用于提供對(duì)兩種登錄方式的支持-基于安全登錄組件的單域認(rèn)證方式和CAS單點(diǎn)登錄的兼容方式;安全登錄模塊(100)負(fù)責(zé)用戶(hù)身份認(rèn)證,通過(guò)認(rèn)證的用戶(hù)為合法用戶(hù);安全登錄模塊(100)所控制的單點(diǎn)登錄客戶(hù)端部署在受控資源的策略定義模塊(300)所定義的策略文檔中;訪問(wèn)受安全登錄模塊(100)控制的節(jié)點(diǎn)受控資源的用戶(hù)必須經(jīng)過(guò)單點(diǎn)登錄服務(wù)器端的安全認(rèn)證;安全登錄模塊(100)接收用戶(hù)的用戶(hù)名和密碼的輸入,進(jìn)行認(rèn)證,產(chǎn)生認(rèn)證結(jié)果,如果認(rèn)證通過(guò),安全登錄模塊(100)根據(jù)用戶(hù)請(qǐng)求的頁(yè)面鏈接將該用戶(hù)認(rèn)證通過(guò)標(biāo)識(shí)發(fā)送給安全上下文服務(wù)模塊(200);安全上下文服務(wù)模塊(200)用于初始化登錄用戶(hù)的身份信息,并依據(jù)策略定義模塊(300)的配置,針對(duì)不同授權(quán)策略,生成并存儲(chǔ)相應(yīng)的激活角色信息、安全級(jí)別以及受管控件訪問(wèn)策略定位標(biāo)識(shí)符,提供給相應(yīng)的Web安全服務(wù)器組件(400)使用;策略定義模塊(300)用于負(fù)責(zé)定義并管理基于安全標(biāo)簽的訪問(wèn)控制的一套規(guī)則,通過(guò)對(duì)xml格式的策略定義文檔進(jìn)行相應(yīng)安全規(guī)則的設(shè)置及存取,該模塊負(fù)責(zé)提供對(duì)受管頁(yè)面關(guān)鍵控件的訪問(wèn)控制規(guī)則,用于描述用戶(hù)、角色、權(quán)限、安全級(jí)以及這些安全元素之間的關(guān)系;Web安全服務(wù)器組件(400)用于解析安全標(biāo)簽庫(kù)(600)的安全標(biāo)簽,在響應(yīng)客戶(hù)端請(qǐng)求時(shí)實(shí)現(xiàn)數(shù)據(jù)的安全綁定并根據(jù)安全上下文服務(wù)模塊(200)提供的安全配置動(dòng)態(tài)加載響應(yīng)頁(yè)面的各種安全屬性,將受控后的組件狀態(tài)提供給Web安全響應(yīng)生成器(500);Web安全響應(yīng)生成器(500)根據(jù)Web安全服務(wù)器組件提供的狀態(tài)信息,決定相應(yīng)頁(yè)面最后的呈現(xiàn)界面,將安全標(biāo)簽的格式轉(zhuǎn)換為相應(yīng)的目標(biāo)標(biāo)識(shí)語(yǔ)言格式,為瀏覽器返回統(tǒng)一的安全響應(yīng)頁(yè)面。
2、 根據(jù)權(quán)利要求1所述的多策略支持的安全Java Web應(yīng)用頁(yè)面標(biāo)簽庫(kù) 系統(tǒng),其特征在于-Web安全服務(wù)器組件(400)包括安全標(biāo)簽解析模塊(410),安全屬 性加載模塊(420)和標(biāo)簽數(shù)據(jù)綁定模塊(430);安全標(biāo)簽解析模塊(410)主要用來(lái)解析頁(yè)面上定義的安全標(biāo)簽及屬性;安全屬性加載模塊(420)將根據(jù)安全標(biāo)簽解析模塊(410)模塊解析 出的安全屬性來(lái)調(diào)用標(biāo)簽數(shù)據(jù)綁定模塊(430);標(biāo)簽數(shù)據(jù)綁定模塊(430)根據(jù)當(dāng)前用戶(hù)的角色信息和安全級(jí)別來(lái)動(dòng)態(tài) 綁定數(shù)據(jù)用于對(duì)當(dāng)前用戶(hù)的角色信息進(jìn)行動(dòng)態(tài)綁定數(shù)據(jù)。
3、 根據(jù)權(quán)利要求1或2所述的多策略支持的安全Java Web應(yīng)用頁(yè)面標(biāo) 簽庫(kù)系統(tǒng),其特征在于安全登錄模塊(100)包括系統(tǒng)信息管理模塊(110)、用戶(hù)信息管理模 塊(120)、用戶(hù)組信息管理模塊(130)和用戶(hù)認(rèn)證模塊(140);系統(tǒng)信息管理模塊(110)為管理員提供配置系統(tǒng)信息的接口;管理員 在受控的系統(tǒng)信息管理模塊(110)上通過(guò)策略定義模塊(300)實(shí)現(xiàn)對(duì)資 源系統(tǒng)的注冊(cè),管理員配置完畢后向策略信息存取模塊(300)提交對(duì)系統(tǒng) 修改信息;用戶(hù)信息管理模塊(120)為管理員提供配置用戶(hù)信息的接口,使管理員能夠訪問(wèn)并修改策略定義模塊(300)中所配置的策略定義文檔中的用戶(hù) 信息;管理員配置完畢后通過(guò)用戶(hù)信息管理模塊(120)向策略定義模塊 (300)提交對(duì)用戶(hù)信息表的修改;用戶(hù)組信息管理模塊(130)為管理員提供描述用戶(hù)組與用戶(hù)對(duì)應(yīng)信息 的接口,并根據(jù)管理員提供的訪問(wèn)控制權(quán)限設(shè)置、歸納用戶(hù)組信息,通過(guò) 策略定義模塊(300)將用戶(hù)組信息寫(xiě)入策略定義文檔;用戶(hù)認(rèn)證模塊(140)將用戶(hù)輸入的信息與策略定義模塊(300)中管 理的用戶(hù)信息進(jìn)行比對(duì),如果用戶(hù)驗(yàn)證通過(guò),則請(qǐng)求安全上下文服務(wù)模塊 (200)獲取當(dāng)前用戶(hù)在系統(tǒng)中的權(quán)限信息。
4、 根據(jù)權(quán)利要求1或2所述的多策略支持的安全JavaWeb應(yīng)用頁(yè)面標(biāo) 簽庫(kù)系統(tǒng),其特征在于安全標(biāo)簽庫(kù)(600)包括標(biāo)簽定義文件(610)和標(biāo)簽規(guī)范(620),標(biāo) 簽定義文件(610)中的每個(gè)標(biāo)簽庫(kù)文件都定義一個(gè)或者多個(gè)自定義標(biāo)簽的 名稱(chēng)、類(lèi)型、內(nèi)容模式、顯示規(guī)范和圖標(biāo),標(biāo)簽庫(kù)文件使用.xml文件擴(kuò)展 名;標(biāo)簽規(guī)范(620)為XML文件定義的標(biāo)簽名稱(chēng)。
5、 根據(jù)權(quán)利要求3所述的多策略支持的安全Java Web應(yīng)用頁(yè)面標(biāo)簽庫(kù) 系統(tǒng),其特征在于-安全標(biāo)簽庫(kù)(600)包括標(biāo)簽定義文件(610)和標(biāo)簽規(guī)范(620),標(biāo) 簽定義文件(610)中的每個(gè)標(biāo)簽庫(kù)文件都定義一個(gè)或者多個(gè)自定義標(biāo)簽的 名稱(chēng)、類(lèi)型、內(nèi)容模式、顯示規(guī)范和圖標(biāo),標(biāo)簽庫(kù)文件使用.xml文件擴(kuò)展 名;標(biāo)簽規(guī)范(620)為XML文件定義的標(biāo)簽名稱(chēng)。
6、 根據(jù)權(quán)利要求5所述的多策略支持的安全JavaWeb應(yīng)用頁(yè)面標(biāo)簽庫(kù) 系統(tǒng),其特征在于策略定義模塊(300)包括策略信息存取模塊(310)、角色信息管理 模塊(320)、用戶(hù)組角色指派信息模塊(330)、角色頁(yè)面控件操作指派信 息模塊(340)和XML存取管理模塊(350);策略信息存取模塊(310)用來(lái)存取系統(tǒng)信息、用戶(hù)信息、用戶(hù)組信息、 用戶(hù)及用戶(hù)組配置信息、角色信息、用戶(hù)組角色指派信息和角色頁(yè)面控件 操作指派信息;角色信息管理模塊(320)為管理員提供配置角色信息的接口,使管理 員能夠訪問(wèn)并修改策略定義模塊(300)所配置的策略定義文檔中的角色信 息;用戶(hù)組角色指派信息模塊(330)為管理員提供對(duì)用戶(hù)的權(quán)限指派接口 , 管理員描述完畢后通過(guò)用戶(hù)組角色指派信息模塊(330)向策略信息存取模 塊(310)提交對(duì)用戶(hù)組的角色指派的修改信息,XML存儲(chǔ)管理模塊(350) 對(duì)管理員提交的描述和修改信息進(jìn)行保存;角色頁(yè)面控件操作指派信息模塊(340)為管理員提供對(duì)角色的權(quán)限指 派接口,管理員配置完畢后通過(guò)角色頁(yè)面控件操作指派信息模塊(340)向 策略信息存取模塊(310)提交對(duì)角色權(quán)限指派的修改信息,XML存儲(chǔ)管 理模塊(350)對(duì)管理員提交的配置和修改信息進(jìn)行保存,保存后的頁(yè)面控 制設(shè)置將在Web安全服務(wù)組件(400)中作為權(quán)限設(shè)置屬性被加載實(shí)現(xiàn);XML存儲(chǔ)管理模塊(350)用于對(duì)接收的信息以XML文檔的形式進(jìn)行 存儲(chǔ)。
7、根據(jù)權(quán)利要求6所述的多策略支持的安全Java Web應(yīng)用頁(yè)面標(biāo)簽庫(kù) 系統(tǒng),其特征在于安全上下文服務(wù)模塊(200)包括用戶(hù)權(quán)限信息初始化模塊(210)、角 色信息激活模塊(220)以及控件訪問(wèn)控制決策模塊(230);用戶(hù)權(quán)限信息初始化模塊(210)根據(jù)安全登錄模塊(100)中提供的用戶(hù)ID在策略定義模塊(300)所定義的策略文檔中獲取當(dāng)前用戶(hù)所在的 用戶(hù)組信息,提供給角色激活模塊(220);角色激活模塊(220)根據(jù)當(dāng)前用戶(hù)的用戶(hù)組信息在策略定義模塊(300) 所定義的策略文檔中獲取當(dāng)前用戶(hù)所有的角色信息,并激活當(dāng)前用戶(hù)所指 派的所有能夠激活的角色,進(jìn)一步生成激活角色信息,供控件訪問(wèn)控制角 色模塊(230)使用;控件訪問(wèn)控制決策模塊(230)根據(jù)當(dāng)前用戶(hù)的激活角色信息在策略定 義模塊(300)所定義的策略文檔中獲取并生成相應(yīng)的安全級(jí)別信息以及受 管控件訪問(wèn)策略定位標(biāo)識(shí)符,供受管控件和安全標(biāo)簽使用。
全文摘要
一種多策略支持的安全Java Web應(yīng)用頁(yè)面標(biāo)簽庫(kù)系統(tǒng),包括安全登錄模塊、安全上下文服務(wù)模塊、策略定義文檔、Web安全服務(wù)器組件、Web安全響應(yīng)生成器、安全標(biāo)簽庫(kù)以及響應(yīng)頁(yè)面。該系統(tǒng)能夠提供Web頁(yè)面中受安全訪問(wèn)控制的各種頁(yè)面標(biāo)簽,基本上涵蓋JSP標(biāo)簽庫(kù)的所有頁(yè)面標(biāo)簽的表現(xiàn)形式,為開(kāi)發(fā)者提供一套集安全訪問(wèn)控制功能在內(nèi)的,高效、完整的頁(yè)面開(kāi)發(fā)標(biāo)簽庫(kù)。本發(fā)明提出的多策略支持安全Java Web應(yīng)用頁(yè)面標(biāo)簽庫(kù)導(dǎo)入安裝后除了能夠完成基本的頁(yè)面HTML控件顯示功能,而且還可以根據(jù)用戶(hù)自身的權(quán)限來(lái)顯示該用戶(hù)可見(jiàn)和可用的資源,且不需要開(kāi)發(fā)者進(jìn)行額外的編碼工作。
文檔編號(hào)G06F17/30GK101546261SQ20081019723
公開(kāi)日2009年9月30日 申請(qǐng)日期2008年10月10日 優(yōu)先權(quán)日2008年10月10日
發(fā)明者彬 劉, 盧正鼎, 卓 唐, 李瑞軒, 胡勁緯, 魯劍鋒 申請(qǐng)人:華中科技大學(xué)