一種基於ssh網站實現rbac訪問權限控制的方法
2023-12-07 23:06:21
一種基於ssh網站實現rbac訪問權限控制的方法
【專利摘要】本發明公開了一種基於SSH網站實現RBAC訪問權限控制的方法,包括以下步驟:用戶對頁面進行訪問請求,判斷Session中的用戶名變量是否為空,若為空,則跳轉到登錄頁面讓用戶登錄,否則將用戶信息保存在所述Session中;用戶訪問資料庫,並將登錄成功的用戶信息保存在所述session中;ORM模塊訪問所述資料庫,從所述資料庫得到訪問頁面相應的權限信息;觸發AOP攔截器,所述APO攔截器從所述Session中得到用戶的權限信息;所述AOP攔截器判斷用戶的權限信息,若包含訪問頁面相應的權限信息,則用戶訪問成功,否則訪問失敗。本發明的有益效果為:邏輯清晰、各個邏輯之間的耦合度低、程序的可重用性高、開發效率高。
【專利說明】一種基於SSH網站實現RBAC訪問權限控制的方法
【技術領域】
[0001]本發明涉及訪問控制及其網站開發【技術領域】,具體而言,涉及一種基於SSH網站實現RBAC訪問權限控制的方法。
【背景技術】
[0002]在現代信息系統中,安全管理一直是重要部分。而訪問控制技術則是安全信息系統的重要環節,它的主要任務是保證資源不被非法使用和訪問。基於角色的訪問控制(Role-Based Access Control)作為傳統訪問控制的代替受到了廣泛的關注。RBAC包含三個實體:用戶、角色和權限。用戶是對數據對象進行操作的主體,可以是人、機器人和計算機等。權限是對某一數據對象可操作的權利。角色則是用戶和權限的中間橋梁。RBAC通過引進角色的概念實現了用戶和權限的邏輯分離,支撐了技術人員與業務人員職責的分離,用戶通過獲得角色得到權限來對客體進行操作,從而實現權限管理與控制。
[0003]但是傳統的RBAC在信息系統建立時角色種類已經確定,角色和權限之間的關聯關係也已經綁定完成,系統可擴展性差,並且邏輯之間的耦合度高,程序的可重用性不高、開發效率低。
【發明內容】
[0004]為解決上述問題,本發明的目的在於提供一種邏輯清晰、耦合度低,程序的可重用性高、開發效率高的一種基於SSH網站實現RBAC訪問權限控制的方法。
[0005]本發明提供了一種基於SSH網站實現RBAC訪問權限控制的方法,其特徵在於,包括以下步驟:
[0006]步驟1,用戶對頁面進行訪問請求,判斷Sess1n中的用戶名變量是否為空,若為空,則跳轉到登錄頁面讓用戶登錄,否則將用戶信息保存在所述Sess1n中;
[0007]步驟2,用戶訪問資料庫,並將登錄成功的用戶信息保存在所述sess1n中;
[0008]步驟3,ORM模塊訪問所述資料庫,從所述資料庫得到訪問頁面相應的權限信息;
[0009]步驟4,觸發AOP攔截器,所述APO攔截器從所述Sess1n中得到用戶的權限信息;
[0010]步驟5,所述AOP攔截器判斷用戶的權限信息,若包含步驟3得到的權限信息,則用戶訪問成功,否則訪問失敗。
[0011]其中,所述資料庫包括:
[0012]用戶表,包括用戶編碼及用戶名,用於儲存用戶信息;
[0013]角色表,包括角色編碼及角色名,用於儲存角色信息;
[0014]權限表,包括權限編碼、權限名和URL地址,用於儲存具體的權限信息;
[0015]用戶角色表,包括用戶編碼和角色編碼,實現用戶和角色的多對多映射;
[0016]角色權限表:包括角色編碼和權限編碼,實現角色和權限的多對多映射;
[0017]所述角色表通過所述用戶角色表與所述用戶表進行多對多的關聯;
[0018]所述角色表通過所述角色權限表與所述權限表進行多對多關聯。
[0019]作為本發明進一步的改進,所述角色表中加入父類角色編碼用以適應角色的分級。
[0020]作為本發明進一步的改進,所述用戶信息、所述角色信息和所述權限信息均以變量名的形式儲存在sess1n中。
[0021]本發明的有益效果為:
[0022]1、通過資料庫的設計,將用戶和權限的邏輯很好的分離開,各個邏輯之間的耦合度降低;
[0023]2、通過ORM模塊對資料庫訪問和AOP攔截器對訪問用戶權限的檢查,使得程序的可重用性高、開發效率高。
【專利附圖】
【附圖說明】
[0024]圖1為本發明實施例所述的一種資料庫的結構圖。
[0025]圖2為本發明實施例所述的一種基於SSH網站實現RBAC訪問權限控制的方法的流程圖;
【具體實施方式】
[0026]下面通過具體的實施例並結合附圖對本發明做進一步的詳細描述。
[0027]如圖1所示,本發明的資料庫包括:
[0028]用戶表,包括用戶編碼userid及用戶名username,用於儲存用戶信息;
[0029]角色表,包括角色編碼roleid及角色名rolename,用於儲存角色信息;
[0030]權限表,包括權限編碼rightid、權限名rightname和URL地址,用於儲存具體的權限信息;
[0031]用戶角色表,包括用戶編碼userid和角色編碼roleid,實現用戶和角色的多對多映射;
[0032]角色權限表:包括角色編碼roleid和權限編碼rightid,實現角色和權限的多對多映射;
[0033]所述角色表通過所述用戶角色表與所述用戶表進行多對多的關聯;
[0034]所述角色表通過所述角色權限表與所述權限表進行多對多關聯。
[0035]如圖2所示,本發明實施例所述的一種基於SSH網站實現RBAC訪問權限控制的方法,包括以下步驟:
[0036]步驟1,用戶對頁面進行訪問請求,判斷Sess1n中的username變量是否為空,若為空,則跳轉到登錄頁面讓用戶登錄,否則將用戶信息保存在所述Sess1n中;
[0037]步驟2,用戶訪問資料庫,並將登錄成功的用戶信息保存在所述sess1n中;
[0038]步驟3,ORM模塊訪問所述資料庫,從所述資料庫得到訪問頁面相應的權限信息;
[0039]步驟4,觸發AOP攔截器,所述APO攔截器從所述Sess1n中得到用戶的權限信息;
[0040]步驟5,所述AOP攔截器判斷用戶的權限信息,若包含步驟3得到的權限信息,則用戶訪問成功,否則訪問失敗。
[0041]由於用戶訪問的時候是通過頁面來訪問,輸入的時候就是一個URL地址,而用戶擁有的權限是通過編碼來標識的,這就需要在URL地址與權限編碼之間建立一個關聯。由於URL地址與權限的關聯保存在資料庫中,這就需要通過ORM模塊來訪問資料庫,以實現查詢URL地址所對應的權限。
[0042]用戶登錄時,會把用戶所擁有的用戶編碼userid、用戶名username、角色編碼roleid、角色名rolename、權限編碼rightid、權限名rightname和URL地址以變量名的形式存儲在Sess1n中,已備需要時調用。當用戶訪問某個頁面時,就觸發AOP攔截器,AOP攔截器從Sess1n中獲得用戶權限信息,與ORM模塊得到的權限信息進行比較,以判斷是否有訪問此頁面的權限,實現訪問控制。
[0043]作為本發明進一步的改進,所述角色表中加入父類角色編碼用以適應角色的分級。
[0044]以上所述僅為本發明的優選實施例而已,並不用於限制本發明,對於本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
【權利要求】
1.一種基於SSH網站實現RBAC訪問權限控制的方法,其特徵在於,包括以下步驟: 步驟1,用戶對頁面進行訪問請求,判斷Sess1n中的用戶名變量是否為空,若為空,則跳轉到登錄頁面讓用戶登錄,否則將用戶信息保存在所述Sess1n中; 步驟2,用戶訪問資料庫,並將登錄成功的用戶信息保存在所述sess1n中; 步驟3,ORM模塊訪問所述資料庫,從所述資料庫得到訪問頁面相應的權限信息; 步驟4,觸發AOP攔截器,所述APO攔截器從所述Sess1n中得到用戶的權限信息;步驟5,所述AOP攔截器判斷用戶的權限信息,若包含步驟3得到的權限信息,則用戶訪問成功,否則訪問失敗。
2.根據權利要求1所述的一種基於SSH網站實現RBAC訪問權限控制的方法,其特徵在於,所述資料庫包括: 用戶表,包括用戶編碼及用戶名,用於儲存用戶信息; 角色表,包括角色編碼及角色名,用於儲存角色信息; 權限表,包括權限編碼、權限名和URL地址,用於儲存具體的權限信息; 用戶角色表,包括用戶編碼和角色編碼,實現用戶和角色的多對多映射; 角色權限表:包括角色編碼和權限編碼,實現角色和權限的多對多映射; 所述角色表通過所述用戶角色表與所述用戶表進行多對多的關聯; 所述角色表通過所述角色權限表與所述權限表進行多對多關聯。
3.根據權利要求2所述的一種基於SSH網站實現RBAC訪問權限控制的方法,其特徵在於,所述角色表中加入父類角色編碼用以適應角色的分級。
4.根據權利要求2所述的一種基於SSH網站實現RBAC訪問權限控制的方法,其特徵在於,所述用戶信息、所述角色信息和所述權限信息均以變量名的形式儲存在sess1n中。
【文檔編號】H04L29/06GK104486357SQ201410843787
【公開日】2015年4月1日 申請日期:2014年12月30日 優先權日:2014年12月30日
【發明者】周世義, 劉若鴻, 武揚, 劉偉, 段明明 申請人:北京經開投資開發股份有限公司