專利名稱::網(wǎng)絡(luò)服務(wù)器的訪問控制方法及控制系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計算機網(wǎng)絡(luò),具體涉及webserver(網(wǎng)絡(luò)服務(wù)器)的訪問控制方法及控制系統(tǒng)。
背景技術(shù):
:目前,大部分業(yè)務(wù)系統(tǒng)都采用webservice(網(wǎng)絡(luò)服務(wù))開放業(yè)務(wù)系統(tǒng)的外部接口,當系統(tǒng)允許外部的客戶端訪問時,系統(tǒng)的完整性就可能會受到威脅,因此,系統(tǒng)通常需要確保不會被非法訪問或遭到流量攻擊。目前有兩類訪問控制,一類是選擇性訪問控制(DiscretionaryAccessControl,簡稱DAC),DAC系統(tǒng)給客戶端分配訪問權(quán)限,外部客戶端在訪問系統(tǒng)時需要登錄,系統(tǒng)通過加密算法驗證用戶身份。首先,實現(xiàn)所有這些驗證過程會給系統(tǒng)帶來很大的負擔(dān),降低系統(tǒng)效率。其次,用戶名和密碼的管理對于系統(tǒng)來說存在安全隱患。最后,因為系統(tǒng)過于復(fù)雜,評估整個系統(tǒng)的安全策略是否被正確實現(xiàn)將會很困難。另一類是強制性訪問控制(MandatoryAccessControl,簡稱MAC),MAC系統(tǒng)依據(jù)發(fā)出請求的客戶端的IP地址或所在的域號來進行界定。但是,現(xiàn)有的強制性訪問控制只能根據(jù)IP地址進行流量限制,如果客戶端來自于多個IP地址,不能根據(jù)客戶端ID準確地對客戶端的流量進行限制?,F(xiàn)有強制性訪問控制方案有以下兩類-一類是apache等流行的網(wǎng)絡(luò)服務(wù)器的做法,apache可以通過mod—access模塊來限制客戶訪問,mod—access模塊通過配置授權(quán)訪問者的IP地址(或域名,主機名等)來控制對apache服務(wù)器的訪問。對于流量控制,網(wǎng)絡(luò)上也有開源的apache模塊實現(xiàn),限制每個IP地址的并發(fā)請求數(shù)。但是如果允許多個客戶端從多個IP地址訪問,那么客戶端的最大并發(fā)請求數(shù)只能是單個IP地址最大并發(fā)請求數(shù)的之和,因此不能準確地根據(jù)客戶端ID限制每個客戶端的流量。如果某個客戶端需要更多的并發(fā)請求,只能多配置幾個允許訪問的IP地址,客戶端也只能從更多的IP地址上訪問才能達到更大的并發(fā)請求數(shù),這樣對客戶端的要求也更高。另一類是網(wǎng)絡(luò)服務(wù)器上做IP地址訪問控制,在后臺業(yè)務(wù)服務(wù)器上進行流量控制。這種方案還有一個明顯的缺點一個外部客戶端的大流量并5發(fā)請求會導(dǎo)致網(wǎng)絡(luò)服務(wù)器無法接入其他客戶端的請求,導(dǎo)致合法的請求被拒絕,而且由于太多的并發(fā)請求調(diào)用到業(yè)務(wù)服務(wù),導(dǎo)致系統(tǒng)超載,最終導(dǎo)致業(yè)務(wù)中止。
發(fā)明內(nèi)容本發(fā)明的目的是提供一種高效率的網(wǎng)絡(luò)服務(wù)器的訪問控制方法及控制系統(tǒng)。本發(fā)明進一步的目的是提供一種能夠準確、可靠地對客戶端的流量進行限制的網(wǎng)絡(luò)服務(wù)器的訪問控制方法及控制系統(tǒng)。為實現(xiàn)上述目的,本發(fā)明提供一種網(wǎng)絡(luò)服務(wù)器的訪問控制方法,包括以下步驟Al、配置客戶端的訪問權(quán)限參數(shù),所述訪問權(quán)限參數(shù)包括客戶端的ID和允許接入的網(wǎng)絡(luò)地址,不同的客戶端允許接入的網(wǎng)絡(luò)地址不同;Bl、根據(jù)所述步驟Al的配置建立二叉査找樹,所述二叉查找樹的各節(jié)點保存各客戶端的訪問權(quán)限參數(shù),節(jié)點關(guān)鍵字為根據(jù)所述網(wǎng)絡(luò)地址轉(zhuǎn)換的無符號長型數(shù)據(jù)值;Cl、將發(fā)出訪問請求的IP地址轉(zhuǎn)換為無符號長型數(shù)據(jù)值,作為查找關(guān)鍵值;Dl、在所述二叉查找樹中査找小于或等于所述査找關(guān)鍵值的最大的節(jié)點關(guān)鍵字,如果查找結(jié)果為空則拒絕訪問,否則執(zhí)行步驟E1;El、判斷所述工P地址是否屬于所査找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址,如果不屬于則拒絕訪問,如果屬于則確定所述IP地址為允許接入的網(wǎng)絡(luò)地址。所述網(wǎng)絡(luò)地址為IP地址或子網(wǎng)的網(wǎng)絡(luò)地址,在所述步驟E1中,將査找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址和發(fā)出訪問請求的工P地址進行邏輯與操作,判斷其結(jié)果與査找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址是否相同,從而判斷發(fā)出訪問請求的IP地址是否屬于所查找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址。所述訪問權(quán)限參數(shù)還包括客戶端的最大并發(fā)流量和當前并發(fā)流量,在所述步驟E1之后還包括以下步驟Fl、判斷所述允許接入的客戶端的當前并發(fā)流量是否己經(jīng)達到最大并發(fā)流量,如果已經(jīng)達到則拒絕接入,否則接入并處理所述訪問請求,同時將所述允許接入的客戶端的當前并發(fā)流量加一。Gl、處理完所述訪問請求時,將所述允許接入的客戶端的當前并發(fā)流量減一。在所述步驟F1中,所述訪問請求通過調(diào)用后臺業(yè)務(wù)服務(wù)進行處理。所述步驟D1包括以下步驟Dll、從根節(jié)點起,比較節(jié)點關(guān)鍵字與所述査找關(guān)鍵值的大小,如果當前節(jié)點關(guān)鍵字比所述査找關(guān)鍵值小,則執(zhí)行步驟D12,.如果當前節(jié)點關(guān)鍵字比所述査找關(guān)鍵值大,則執(zhí)行步驟D13,如果當前節(jié)點關(guān)鍵字與所述杳找關(guān)鍵值相等,則返回當前節(jié)點。D12、如果當前節(jié)點有右子樹,則往其右子樹作遞歸査找;如果當前節(jié)點無右子樹,則直接返回當前節(jié)點;D13、如果當前節(jié)點有左子樹,則往其左子樹作遞歸査找;如果當前節(jié)點無左子樹,則進一步判斷當前節(jié)點是根節(jié)點還是左子節(jié)點或右子節(jié)點,如果是根節(jié)點或左子節(jié)點,則返回空,如果是右子節(jié)點,則返回當前節(jié)點的父節(jié)點。為實現(xiàn)上述目的,本發(fā)明還提供一種網(wǎng)絡(luò)服務(wù)器的訪問控制系統(tǒng),包括用于配置客戶端的訪問權(quán)限參數(shù)的權(quán)限配置裝置,所述訪問權(quán)限參數(shù)包括客戶端的ID和允許接入的網(wǎng)絡(luò)地址,不同的客戶端允許接入的網(wǎng)絡(luò)地址不同;用于根據(jù)所述權(quán)限配置裝置的配置建立二叉查找樹的二叉查找樹建立裝置,所述二叉査找樹的各節(jié)點保存各客戶端的訪問權(quán)限參數(shù),節(jié)點關(guān)鍵字為根據(jù)所述網(wǎng)絡(luò)地址轉(zhuǎn)換的無符號長型數(shù)據(jù)值;用于將發(fā)出訪問請求的IP地址轉(zhuǎn)換為無符號長型數(shù)據(jù)值以作為查找關(guān)鍵值的轉(zhuǎn)換裝置;用于在所述二叉查找樹中查找小于或等于所述査找關(guān)鍵值的最大的節(jié)點關(guān)鍵字的査找裝置;以及用于判斷所述IP地址是否屬于所査找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址的第一判斷裝置,如果所述IP地址不屬于所查找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址,則拒絕訪問,如果屬于則確定所述IP地址為允許接入的網(wǎng)絡(luò)地址。所述第一判斷裝置包括用于將查找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址和發(fā)出訪問請求的IP地址進行邏輯與操作的邏輯與單元,用于判斷邏輯與單元運算后的結(jié)果與查找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址是否相同的判斷單元。訪問控制系統(tǒng)還包括用于判斷允許接入的客戶端的當前并發(fā)流量是否已經(jīng)達到最大并發(fā)流量的第二判斷裝置;用于在接入客戶端時,將該客戶端當前并發(fā)流量加一的第一處理裝置;以及用于完成訪問請求處理時,將該客戶端當前并發(fā)流量減一的第二處理裝置。所述查找裝置包括用于從根節(jié)點起比較節(jié)點關(guān)鍵字與查找關(guān)鍵值的大小的比較單元;根據(jù)比較單元的比較結(jié)果進行相應(yīng)處理的執(zhí)行單元,所述執(zhí)行單元在節(jié)點關(guān)鍵字小于査找關(guān)鍵值時,如果當前節(jié)點有右子樹,則往其右子樹作遞歸查找,如果當前節(jié)點無右子樹,則直接返回當前節(jié)點;所述執(zhí)行單元在節(jié)點關(guān)鍵字大于查找關(guān)鍵值時,如果當前節(jié)點有左子樹,則往其左子樹作遞歸査找;如果當前節(jié)點無左子樹,則進一步判斷當前節(jié)點是根節(jié)點還是左子節(jié)點或右子節(jié)點,如果是根節(jié)點或左子節(jié)點,則返回空,如果是右子節(jié)點,則返回當前節(jié)點的父節(jié)點。本發(fā)明的有益效果是在本發(fā)明的訪問控制方法中,首先根據(jù)已知的客戶端訪問權(quán)限參數(shù)的配置建立二叉査找樹,該二叉査找樹的各節(jié)點至少保存客戶端的ID和允許接入的網(wǎng)絡(luò)地址,而節(jié)點關(guān)鍵字為根據(jù)允許接入的網(wǎng)絡(luò)地址轉(zhuǎn)換的無符號長型數(shù)據(jù)值;當有IP地址對網(wǎng)絡(luò)服務(wù)器發(fā)出訪問請求時,先將該IP地址轉(zhuǎn)換為無符號長型數(shù)據(jù)值作為査找關(guān)鍵值,然后,在二叉査找樹中査找小于或等于該查找關(guān)鍵值的最大的節(jié)點關(guān)鍵字,當查找結(jié)果為空時拒絕訪問,否則進一步判斷發(fā)出訪問請求的IP地址是否屬于所査找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址,如果不屬于則拒絕訪問,如果屬于,則確定發(fā)出訪問請求的IP地址為允許接入的網(wǎng)絡(luò)地址。本發(fā)明中,利用基于二叉查找樹的查找方法對客戶端請求進行IP地址識別,實現(xiàn)了網(wǎng)絡(luò)服務(wù)器的高效率的強制訪問控制。優(yōu)選的方案下,客戶端訪問權(quán)限參數(shù)還包括客戶端的最大并發(fā)流量和當前并發(fā)流量,最大并發(fā)流量對應(yīng)于客戶端ID,即是根據(jù)客戶端ID而非根據(jù)每個IP地址來限制并發(fā)請求數(shù),這樣就克服了一類現(xiàn)有技術(shù)中客戶端的最大并發(fā)請求數(shù)只能是不同IP地址最大并發(fā)請求數(shù)的之和的缺點,故能更準確地根據(jù)客戶端ID限制每個客戶端的流量,精確控制并發(fā)請求,對于客戶端需占用IP地址的要求也更低;另一方面,比于另一類現(xiàn)有的強制訪問控制方法,本發(fā)明同時在網(wǎng)絡(luò)服務(wù)器(前臺)上實現(xiàn)了流量控制,流量控制的判斷不交付后臺業(yè)務(wù)服務(wù)器進行,所以能夠避免非法的并發(fā)請求調(diào)用后臺的業(yè)務(wù)服務(wù)。因此,相對于己有的技術(shù),本發(fā)明又是一種更為精確、更為可靠的強制訪問控制方法。.圖1為本發(fā)明網(wǎng)絡(luò)服務(wù)器訪問控制方法實施例的總體流程圖;圖2為本發(fā)明網(wǎng)絡(luò)服務(wù)器訪問控制方法實施例的二叉査找樹示意圖;圖3為本發(fā)明網(wǎng)絡(luò)服務(wù)器訪問控制方法實施例的訪問控制流程圖。具體實施方式本發(fā)明的特征及優(yōu)點將通過實施例結(jié)合附圖進行詳細說明。請參考圖1,本發(fā)明網(wǎng)絡(luò)服務(wù)器的訪問控制方法可按照以下步驟實現(xiàn)一、配置客戶端的訪問權(quán)限首先利用數(shù)據(jù)庫或文件配置客戶端的訪問權(quán)限。配置文件的內(nèi)容包括客戶端的ID、最大并發(fā)流量、允許接入的網(wǎng)絡(luò)地址。允許接入的網(wǎng)絡(luò)地址可以配置多個,可以是具體的IP地址,也可以是子網(wǎng)的網(wǎng)絡(luò)地址。但是不同的客戶端配置的IP地址或子網(wǎng)的網(wǎng)絡(luò)地址均不能跟其它的客戶端配置的工P地址及子網(wǎng)的網(wǎng)絡(luò)地址相同。二、創(chuàng)建二叉査找樹網(wǎng)絡(luò)服務(wù)器啟動時從配置文件中讀取訪問權(quán)限配置,讀取訪問權(quán)限配置時,根據(jù)網(wǎng)絡(luò)地址將客戶端訪問權(quán)限參數(shù)索引成二叉査找樹(BinarySortTree)。二叉查找樹節(jié)點的節(jié)點關(guān)鍵字為根據(jù)IP地址或子網(wǎng)的網(wǎng)絡(luò)地址轉(zhuǎn)換的無符號長型(UnsignedLong)數(shù)據(jù)值。二叉查找樹的節(jié)點還用于保存客戶端的ID、最大并發(fā)流量以及當前并發(fā)流量。表l客戶端訪問權(quán)限配置文件<table>tableseeoriginaldocumentpage9</column></row><table>請參考表1,按照配置文件內(nèi)容的先后順序讀取出表1中的訪問權(quán)限配置,采用順序插入節(jié)點的辦法逐步構(gòu)建二叉查找樹,其具體步驟可表如下(a)初始狀態(tài)下二叉査找樹為空,為第一個待插入的客戶端的訪問權(quán)限配置申請一個新節(jié)點,令其為根節(jié)點;(b)讀取下一客戶端的訪問權(quán)限配置,將其對應(yīng)的待插入節(jié)點的關(guān)鍵字和根節(jié)點關(guān)鍵字進行比較;(c)若二者相等,則說明二叉查找樹中已有此關(guān)鍵字,無須插入,此時返回步驟(b);(d)若待插入節(jié)點的關(guān)鍵字小于根節(jié)點關(guān)鍵字,則確定插入根節(jié)點的左子樹中,進入步驟(f);(e)若待插入節(jié)點的關(guān)鍵字大于根節(jié)點關(guān)鍵字,則確定插入根節(jié)點的右子樹中,進入步驟(f);(f)子樹中的插入過程與上述過程相同,即,按照步驟(c)(e)的判斷方式,確定插入子一級節(jié)點的左子樹或右子樹中,直到將待插入的客戶端的訪問權(quán)限配置作為--個新節(jié)點插入二叉查找樹,或者直到發(fā)現(xiàn)樹中已有此節(jié)點關(guān)鍵字,返回步驟(b)。配置文件內(nèi)容讀取完畢后,最終建立如圖2所示的二叉查找樹。所建立的二叉査找樹滿足如下性質(zhì)(i)若其左子樹非空,則左子樹上所有節(jié)點的網(wǎng)絡(luò)地址均小于根節(jié)點的網(wǎng)絡(luò)地址;(ii)若其右子樹非空,則右子樹上所有節(jié)點的網(wǎng)絡(luò)地址均大于根節(jié)點的網(wǎng)絡(luò)地址;(iii)子樹本身又各是一棵二叉查找樹。如圖2所示,本實施例共有4個客戶端訪問權(quán)限配置,其中ID為3的客戶端分配了兩個IP,因此構(gòu)成了具有5個節(jié)點的二叉査找樹。圖2中為描述方便,直接使用客戶端IP地址作為節(jié)點關(guān)鍵字進行描述,實際是以IP地址或子網(wǎng)的網(wǎng)絡(luò)地址轉(zhuǎn)換的無符號長型數(shù)據(jù)值作為節(jié)點關(guān)鍵字。三、網(wǎng)絡(luò)服務(wù)器在客戶端接入時進行訪問控制,請參考圖3,訪問控制具體又分為如下步驟在步驟S1,將發(fā)出訪問請求的IP地址轉(zhuǎn)換為無符號長型數(shù)據(jù)值,作為查找關(guān)鍵值;在步驟S2,從根節(jié)點起,比較節(jié)點關(guān)鍵字與所述查找關(guān)鍵值的大小,如果當前節(jié)點關(guān)鍵字比所述査找關(guān)鍵值小,則執(zhí)行步驟S3,如果當前節(jié)點關(guān)鍵字比所述查找關(guān)鍵值大,則執(zhí)行步驟S4,如果當前節(jié)點關(guān)鍵字與所述查找關(guān)鍵值相等,則返回當前節(jié)點,轉(zhuǎn)入步驟S5;在步驟S3,如果當前節(jié)點有右子樹,則往其右子樹作遞歸查找;如果當前節(jié)點無右子樹,則直接返回當前節(jié)點,轉(zhuǎn)入步驟S5;在步驟S4,如果當前節(jié)點有左子樹,則往其左子樹作遞歸査找;如果當前節(jié)點無左子樹,則進一步判斷當前節(jié)點是根節(jié)點還是其父節(jié)點的左子節(jié)點或右子節(jié)點,如果是根節(jié)點或是其父節(jié)點的左子節(jié)點,則返回空,如果是其父節(jié)點的右子節(jié)點,則返回當前節(jié)點的父節(jié)點,進入步驟S5;在步驟S5,如果前一步返回空,則表示在二叉查找樹中沒有匹配的IP地址,判斷此次訪問為不合法,否則進入步驟S6;在步驟S6,將返回的節(jié)點的網(wǎng)絡(luò)地址(對應(yīng)査找到的節(jié)點關(guān)鍵字)和發(fā)出訪問請求的IP地址(對應(yīng)查找關(guān)鍵值)進行邏輯與操作,判斷其結(jié)果與返回的節(jié)點的網(wǎng)絡(luò)地址是否相同,從而判斷發(fā)出訪問請求的IP地址是否屬于所查找到的節(jié)點的網(wǎng)絡(luò)地址。如果邏輯與操作的結(jié)果跟查找到的節(jié)點關(guān)鍵字不一致,則認為此次訪問為非授權(quán)訪問,拒絕接入;如果邏輯與操作的結(jié)果跟返回的節(jié)點的網(wǎng)絡(luò)地址相同,則此次訪問為合法,接下來將進入步驟S7;這里存在兩種情況(1)返回的節(jié)點的網(wǎng)絡(luò)地址為IP地址,査找關(guān)鍵字所代表的IP地址與返回的節(jié)點的網(wǎng)絡(luò)地址相同,如IP地址為211.139.146.43節(jié)點的網(wǎng)絡(luò)地址為:211.139.146.43將211.139.146.43與211.139.146.43做與操作后,結(jié)果還是211.139.146.43,為合法訪問;(2).返回的節(jié)點的網(wǎng)絡(luò)地址是一個子網(wǎng)的網(wǎng)絡(luò)地址,查找關(guān)鍵字所代表的IP地址歸屬于該子網(wǎng),如IP地址為222.21.160.73節(jié)點的網(wǎng)絡(luò)地址為222.21.160.64222.21.160.73與222.21.160.64做與操作后,結(jié)果還是222.21.160.64,為合法訪問;在步驟S7,檢查當前流量是否已經(jīng)達到最大并發(fā)流量,如果大于,則拒絕接入,否則對請求進行處理,同時將該客戶端的當前流量加一;訪問請求接入之后的處理可以通過調(diào)用后臺業(yè)務(wù)服務(wù)進行。四、對于允許接入的訪問請求,網(wǎng)絡(luò)服務(wù)器在處理完請求返回應(yīng)答包時,將該客戶端的當前并發(fā)流量減一。作為本發(fā)明的另一方面,還提供了一種網(wǎng)絡(luò)服務(wù)器的訪問控制系統(tǒng),它包括如下部分權(quán)限配置裝置用于配置客戶端的訪問權(quán)限參數(shù);所述訪問權(quán)限參數(shù)包括客戶端的ID和允許接入的網(wǎng)絡(luò)地址,不同的客戶端允許接入的網(wǎng)絡(luò)地址不同;二叉查找樹建立裝置用于根據(jù)權(quán)限配置裝置的配置建立二叉査找樹;所述二叉查找樹的各節(jié)點保存各客戶端的訪問權(quán)限參數(shù),節(jié)點關(guān)鍵字為根據(jù)所述網(wǎng)絡(luò)地址轉(zhuǎn)換的無符號長型數(shù)據(jù)值;轉(zhuǎn)換裝置用于將發(fā)出訪問請求的IP地址轉(zhuǎn)換為無符號長型數(shù)據(jù)值以作為查找關(guān)鍵值;查找裝置用于在所述二叉査找樹中查找小于或等于所述査找關(guān)鍵值的最大的節(jié)點關(guān)鍵字;第一判斷裝置用于判斷所述IP地址是否屬于所查找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址的判斷裝置,如果所述IP地址不屬于所査找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址,則拒絕訪問,如果屬于則確定所述IP地址為允許接入的網(wǎng)絡(luò)地址。進一步優(yōu)選的方案如下該第一判斷裝置包括邏輯與單元用于將査找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址和發(fā)出訪問請求的IP地址進行邏輯與操作;判斷單元用于判斷邏輯與單元運算后的結(jié)果與査找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址是否相同。該查找裝置包括比較單元用于從根節(jié)點起比較節(jié)點關(guān)鍵字與査找關(guān)鍵值的大??;執(zhí)行單元用于根據(jù)比較單元的比較結(jié)果進行相應(yīng)處理在節(jié)點關(guān)鍵字小于查找關(guān)鍵值時,如果當前節(jié)點有右子樹,則往其右子樹作遞歸查找,如果當前節(jié)點無右子樹,則直接返回當前節(jié)點;在節(jié)點關(guān)鍵字大于查找關(guān)鍵值時,如果當前節(jié)點有左子樹,則往其左子樹作遞歸查找;如果當前節(jié)點無左子樹,則進一步判斷當前節(jié)點是根節(jié)點還是左子節(jié)點或右子節(jié)點,如果是根節(jié)點或左子節(jié)點,則返回空,如果是右子節(jié)點,則返回當前節(jié)點的父節(jié)點。訪問控制系統(tǒng)還包括第二判斷裝置用于判斷允許接入的客戶端的當前并發(fā)流量是否已經(jīng)達到最大并發(fā)流量;第一處理裝置用于在接入客戶端時,將該客戶端當前并發(fā)流量加一;以及;第二處理裝置用于完成訪問請求處理時,將該客戶端當前并發(fā)流量減一。本發(fā)明利用客戶端訪問配置構(gòu)建二叉查找樹,當客戶端發(fā)出訪問請求時,可通過對二叉査找樹的查找來進行訪問控制,二叉查找樹的節(jié)點不但可以存儲客戶端ID、允許接入的網(wǎng)絡(luò)地址,還可以存儲客戶端的最大并發(fā)流量,基于二叉樹的訪問控制能很好的解決現(xiàn)有技術(shù)中存在的問題--一--通過在網(wǎng)絡(luò)服務(wù)器上根據(jù)IP地址對客戶端進行識別,從而可以在網(wǎng)絡(luò)服務(wù)器上進行IP地址訪問控制和流量控制,因此一方面可以精確對客戶端的并發(fā)請求進行控制,另一方面能避免非法的并發(fā)請求調(diào)用到后臺的業(yè)務(wù)服務(wù)。以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進-步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當視為屬于本發(fā)明的保護范圍。權(quán)利要求1.一種網(wǎng)絡(luò)服務(wù)器的訪問控制方法,其特征在于包括以下步驟A1、配置客戶端的訪問權(quán)限參數(shù),所述訪問權(quán)限參數(shù)包括客戶端的ID和允許接入的網(wǎng)絡(luò)地址,不同的客戶端允許接入的網(wǎng)絡(luò)地址不同;B1、根據(jù)所述步驟A1的配置建立二叉查找樹,所述二叉查找樹的各節(jié)點保存各客戶端的訪問權(quán)限參數(shù),節(jié)點關(guān)鍵字為根據(jù)所述網(wǎng)絡(luò)地址轉(zhuǎn)換的無符號長型數(shù)據(jù)值;C1、將發(fā)出訪問請求的IP地址轉(zhuǎn)換為無符號長型數(shù)據(jù)值,作為查找關(guān)鍵值;D1、在所述二叉查找樹中查找小于或等于所述查找關(guān)鍵值的最大的節(jié)點關(guān)鍵字,如果查找結(jié)果為空則拒絕訪問,否則執(zhí)行步驟E1;E1、判斷所述IP地址是否屬于所查找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址,如果不屬于則拒絕訪問,如果屬于則確定所述IP地址為允許接入的網(wǎng)絡(luò)地址。2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)服務(wù)器的訪問控制方法,其特征在于所述步驟B1中,所述二叉查找樹按照以下方式建立(a)將第一個待插入的客戶端的訪問權(quán)限配置作為根節(jié)點;(b)按配置順序讀取下一客戶端的訪問權(quán)限配置,將對應(yīng)的節(jié)點關(guān)鍵字和根節(jié)點關(guān)鍵字進行比較;(c)若二者相等,則返回步驟(b);.(d)若待插入節(jié)點的關(guān)鍵字小于根節(jié)點關(guān)鍵字,則確定插入根節(jié)點的左子樹中,進入步驟(f);(e)若待插入節(jié)點的關(guān)鍵字大于根節(jié)點關(guān)鍵字,則確定插入根節(jié)點的右子樹中,進入步驟(f);(f)依照步驟(c)(e)的判斷方式,確定插入子一級節(jié)點的左子樹或右子樹中,直到將待插入的客戶端的訪問權(quán)限配置作為一個新節(jié)點插入到所述二叉查找樹中,或者直到發(fā)現(xiàn)已有此節(jié)點關(guān)鍵字,返回步驟(b)。3.根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)服務(wù)器的訪問控制方法,其特征在于所述網(wǎng)絡(luò)地址為IP地址或子網(wǎng)的網(wǎng)絡(luò)地址,在所述步驟E1中,將查找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址和發(fā)出訪問請求的IP地址進行邏輯與操作,判斷其結(jié)果與查找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址是否相同,從而判斷發(fā)出訪問請求的IP地址是否屬于所查找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址。4.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)服務(wù)器的訪問控制方法,其特征在于所述訪問權(quán)限參數(shù)還包括客戶端的最大并發(fā)流量和當前并發(fā)流量,在所述步驟El之后還包括以下步驟Fl、判斷所述允許接入的客戶端的當前并發(fā)流量是否己經(jīng)達到最大并發(fā)流量,如果已經(jīng)達到則拒絕接入,否則接入并處理所述訪問請求,同時將所述允許接入的客戶端的當前并發(fā)流量加一。5.根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)服務(wù)器的訪問控制方法,其特征在于在所述步驟F1之后還包括以下步驟Gl、處理完所述訪問請求時,將所述允許接入的客戶端的當前并發(fā)流量減一。6.根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)服務(wù)器的訪問控制方法,其特征在于在所述步驟F1屮,所述訪問請求通過調(diào)用后臺業(yè)務(wù)服務(wù)進行處理。7.根據(jù)權(quán)利要求16任意一項所述的網(wǎng)絡(luò)服務(wù)器的訪問控制方法,其特征在于所述步驟Dl包括以下步驟Dll、從根節(jié)點起,比較節(jié)點關(guān)鍵字與所述査找關(guān)鍵值的大小,如果當前節(jié)點關(guān)鍵字比所述查找關(guān)鍵值小,則執(zhí)行步驟D12,如果當前節(jié)點關(guān)鍵字比所述査找關(guān)鍵值大,則執(zhí)行歩驟D13,如果當前節(jié)點關(guān)鍵字與所述查找關(guān)鍵值相等,則返回當前節(jié)點。D12、如果當前節(jié)點有右子樹,則往其右子樹作遞歸查找;如果當前節(jié)點無右子樹,則直接返回當前節(jié)點;D13、如果當前節(jié)點有左子樹,則往其左子樹作遞歸查找;如果當前節(jié)點無左子樹,則進一步判斷當前節(jié)點是根節(jié)點還是左子節(jié)點或右子節(jié)點,如果是根節(jié)點或左子節(jié)點,則返回空,如果是右子節(jié)點,則返回當前節(jié)點的父節(jié)點。8.—種網(wǎng)絡(luò)服務(wù)器的訪問控制系統(tǒng),其特征在于包括用于配置客戶端的訪問權(quán)限參數(shù)的權(quán)限配置裝置,所述訪問權(quán)限參數(shù)包括客戶端的1D和允許接入的網(wǎng)絡(luò)地址,不同的客戶端允許接入的網(wǎng)絡(luò)地址不同;用于根據(jù)所述權(quán)限配置裝置的配置建立二叉查找樹的二義査找樹建立裝置,所述二叉査找樹的各節(jié)點保存各客戶端的訪問權(quán)限參數(shù),節(jié)點關(guān)鍵字為根據(jù)所述網(wǎng)絡(luò)地址轉(zhuǎn)換的無符號長型數(shù)據(jù)值;用于將發(fā)出訪問請求的IP地址轉(zhuǎn)換為無符號長型數(shù)據(jù)值以作為查找關(guān)鍵值的轉(zhuǎn)換裝置;用于在所述二叉査找樹中查找小于或等于所述査找關(guān)鍵值的最大的節(jié)點關(guān)鍵字的查找裝置;以及用于判斷所述IP地址是否屬于所查找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址的第一判斷裝置,如果所述IP地址不屬于所査找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址,則拒絕訪問,如果屬于則確定所述IP.地址為允許接入的網(wǎng)絡(luò)地址。9.根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)服務(wù)器的訪問控制系統(tǒng),其特征在于所述第一判斷裝置包括用于將査找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址和發(fā),出訪問請求的IP地址進行邏輯與操作的邏輯與單元,判斷邏輯與單元運算后的結(jié)果與査找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址是否相同的判斷單元。10.根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)服務(wù)器的訪問控制系統(tǒng),其特征在于還包括用于判斷允許接入的客戶端的當前并發(fā)流量是否已經(jīng)達到最大并發(fā)流量的第二判斷裝置;用于在接入客戶端時,將該客戶端當前并發(fā)流量加一的第一處理裝置;以及用于完成訪問請求處理時,將該客戶端當前并發(fā)流量減一的第二處理裝置。11.根據(jù)權(quán)利要求810任意一項所述的的網(wǎng)絡(luò)服務(wù)器的訪問控制系統(tǒng),其特征在于所述査找裝置包括用于從根節(jié)點起比較節(jié)點關(guān)鍵字與査找關(guān)鍵值的大小的比較單元;根據(jù)比較單元的比較結(jié)果進行相應(yīng)處理的執(zhí)行單元,所述執(zhí)行單元在節(jié)點關(guān)鍵字小于查找關(guān)鍵值時,如果當前節(jié)點有右子樹,則往其右子樹作遞歸查找,如果當前節(jié)點無右子樹,則直接返回當前節(jié)點;所述執(zhí)行單元在節(jié)點關(guān)鍵字大于査找關(guān)鍵值時,如果當前節(jié)點有左子樹,則往其左子樹作遞歸查找;如果當前節(jié)點無左子樹,則進一步判斷當前節(jié)點是根節(jié)點還是左子節(jié)點或右子節(jié)點,如果是根節(jié)點或左子節(jié)點,則返回空,如果是右子節(jié)點,則返回當前節(jié)點的父節(jié)點。全文摘要本發(fā)明公開了一種網(wǎng)絡(luò)服務(wù)器的訪問控制方法,包括配置客戶端的訪問權(quán)限參數(shù),其包括客戶端ID和允許接入的網(wǎng)絡(luò)地址;根據(jù)配置建立二叉查找樹,各節(jié)點保存訪問權(quán)限參數(shù),節(jié)點關(guān)鍵字為根據(jù)網(wǎng)絡(luò)地址轉(zhuǎn)換的無符號長型數(shù)據(jù)值;將發(fā)出訪問請求的IP地址轉(zhuǎn)換為無符號長型數(shù)據(jù)值作為查找關(guān)鍵值;在二叉查找樹中查找小于或等于查找關(guān)鍵值的最大的節(jié)點關(guān)鍵字,查找結(jié)果為空則拒絕訪問,否則判斷IP地址是否屬于所查找到的節(jié)點關(guān)鍵字對應(yīng)的網(wǎng)絡(luò)地址,若不屬于則拒絕訪問,否則確定IP地址為允許接入的網(wǎng)絡(luò)地址。本發(fā)明還公開了一種網(wǎng)絡(luò)服務(wù)器的訪問控制系統(tǒng)。本發(fā)明基于二叉查找樹進行強制訪問控制,對訪問地址判別的效率高,能夠準確、可靠地實現(xiàn)流量控制。文檔編號H04L12/56GK101515874SQ200810065390公開日2009年8月26日申請日期2008年2月21日優(yōu)先權(quán)日2008年2月21日發(fā)明者劉志堯,廖炳才,李升林申請人:卓望數(shù)碼技術(shù)(深圳)有限公司