權限管理系統,還缺少什麼?裏面有要求,也有我已經做過的項目的描述!

項目目標:設計並開發與JBOSS集成的J2EE權限系統(類似JBOSS的權限管理系統,其實我對JBOSS沒什麼瞭解)


總體要求:

1、靈活、通用、方便;

2、高度安全並可靠;

3、易於擴展;

4、結構完整,代碼清晰,易於閱讀。


技術要求:

1、需要提供詳細設計文檔,闡述基本思路與實現方法;

2、資源控制(對象資源和數據資源的控制方法);

3、權限關係建模;

4、訪問控制方法;

5、業務邏輯層的訪問接口;


===========================下面是我的權限系統的分析資料==============================
權限Demo
  B/S系統中的權限比C/S中的更顯的重要,C/S系統因爲具有明確的客戶端,所以訪問用戶的權限檢測可以通過客戶端實現或通過客戶端+服務器檢測實現,而B/S中,瀏覽器是每一臺計算機都已具備的,面向的用戶對象不確定,如果不建立一個完整的權限檢測,那麼一個“非法用戶”很可能就能通過瀏覽器輕易訪問到B/S系統中的所有功能(例如:SQL注入等)。因此B/S業務系統都需要有一個或多個權限系統來實現訪問權限檢測,讓經過授權的用戶可以正常合法的使用已授權功能,而對那些未經授權的“非法用戶”將會將他們徹底的“拒之門外”。
需求陳述
• 不同職責的人員,對於系統操作的權限應該是不同的。
• 可以對“角色”進行權限分配。在公司裏面,每一個人都扮演這不同的角色,不同的角色,他的權限操作又是不同的。所以,系統中就提出了對“角色”進行操作的概念,將權限一致的人員編入同一角色,然後對該角色進行權限分配。
• 權限管理系統應該是可擴展的。它應該可以加入到任何帶有權限管理功能的系統中。就像是組件一樣的可以被不斷的重用,而不是每開發一套管理系統,就要針對權限管理部分進行重新開發。當一個用戶的角色,發生變化,那麼他所擁有的權限,也會因此發生改變。
• 關於設計
  爲了實現需求,數據庫的設計可謂及其重要,無論是“組”操作的概念,還是整套權限管理系統的重用性,都在於數據庫的設計。
下面,我們先來分析一下數據庫結構,使用 MySql:
首先,proinfo表(以下簡稱爲“權限表”),roleinfo表(以下簡稱爲“角色表”),以及userinfo表(以下簡稱爲“人員表”),是三張實體表,它們依次記錄着“權限”的信息,“角色”的信息和“人員”的信息。如下圖:
Userinfo:用戶信息表 roleinfo:角色信息表

Proinfo:權限信息表

  這三個表之間的關係是多對多的,一個權限可能同時屬於多個角色,一個角色中也可能同時包含多個權限。同樣的道理,一個人員可能同時屬於多個角色,而一個角色中也可能同時包含多個人員。

由於這三張表之間存在着多對多的關係,那麼它們之間的交互,可以使用2張中間表來實現,一張用來映射權限表與管理組表之間的交互,一張用來映射人員表與角色表之間的交互。由於時間的關係,當然,在數據庫設計的時候,角色表和權限表之間沒有創建中間表,角色不多(角色類型基本很少發生改變),通過在權限表中創建一個字段來關聯實現,對擴展性,肯定是有一定的影響。 
Appinfo:角色表和權限表的映射表

  通過這種關聯,才查詢到權限映射表之中那些權限的詳細信息。綜合起來,我們就知道了一個管理組可以執行的權限有哪些,以及這些權限的詳細信息是什麼。
或許大家要問,爲什麼不把角色表和用戶表也通過一個字段來關聯?
因爲:在添加一個用戶的時候,就要爲該用戶分配角色,在角色表中用一個字段來關聯,想一下,我有N個用戶,角色表中就會有>N條記錄,查詢出來也很麻煩!
  爲什麼使用這種數據庫設計方式搭建起來的系統可以重用呢?
• 三張實體表中記錄着系統中的三個決定性元素。“權限”,“角色”和“用戶”。而這三種元素可以任意添加,彼此之間不受影響。無論是那種類型的業務系統,這三個決定性元素是不會變的,也就意味着結構上不會變,而變的僅僅是數據。
• 映射表中記錄着三個元素之間的關係。但這些關係是人爲創建的,需要變化的時候,只是對數據庫中的記錄進行操作,無需改動表的結構。
  綜上所述,這樣設計數據庫,系統是基本可以重用的,並且經受得住“變更”考驗的。
系統不足地方(個人見解)
1. 將所有的權限放在一張表中,如果每一個用戶都具有相同的一部分權限?
將相同的權限找出來,劃分爲一個權限管理組,在用戶登陸的時候,直接查詢加載。
2. 權限功能的動態顯示,應該在數據庫中在添加一張表目錄表(比較麻煩),設置權限組顯示目錄分配,當然你也可以在程序來完成該功能!


關於“級別-功能-角色-用戶-組”的權限管理設計
思路:
1、通過“級--功能--角色--用戶”來進行管理。
功能: 系統的一些操作。 例如:添加員工
•角色:角色是一個或多個功能的集合。例如總經理:人員調整,添加部分信息。。。。。。。。
•用戶:用戶可以扮演一個或多個角色。
級: 一般權限就是一個功能樹的結構,添加‘級‘,主要是用來設置顯示的時候加載。。


希望有時間的朋友,拿出你的意見!!!!!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章