2010-02-09 209 views
3

我正在開發一個用Java實現的數據建模軟件。此應用程序將文本數據(存儲在數據庫中)轉換爲圖形格式,以便用戶可以以更高效的形式解釋數據。如何在Java應用程序中實現管理員權限?

1.經理(誰可以填充數據的數據庫,他們還可以將數據輸入數據庫後,查看數據的可視化形式)

:現在,這個應用程序將3種者進行訪問

2.觀衆(誰只能查看數據的可視化形式已填補經理)

3.管理員(誰可以創建和管理其他行政人員,管理人員和觀衆)

現在,如何實現3個差異。同一個應用程序的意見。

注:管理者,觀衆和管理員可以位於世界上的任何部分,應通過互聯網訪問應用程序。這排在我的腦海裏

一個想法是:

第一步:代碼都在EJB中的業務邏輯,以便它可以在分佈式環境中使用(指通過訪問幾個用戶通過互聯網)

步驟2:代碼3 Swing GUI客戶端:一個用於管理員,一個用於管理員,一個用於管理員,另一個用於觀衆。這3個GUI客戶端可以訪問用EJB編寫的業務邏輯。

第3步:分配與其用戶對應的客戶端。例如,經理客戶經理。

================================= 問題 ========== =============================

Q1。以上方法是否正確? Q230。

Q2。這是各種軟件具有的常見功能。那麼,他們是否通過這種方式或任何其他方式實現了這種功能?

Q3。如果有其他方法會更好,那麼這種方法是什麼?

回答

9
  1. 沒有
  2. 沒有

使不同客戶對不同的安全角色是:

  • 安全漏洞 - 如果有什麼觀衆獲得管理員的版本?
  • 難以維持

做到這一點的方法是:

  • 使傳送到客戶端依賴於一個安全檢查
  • 也使UI的各個部分可見的數據/啓用取決於安全檢查
  • 在服務器上進行安全檢查
  • 安全ty檢查取決於當前登錄的用戶
  • 用戶在啓動時使用他的憑據(用戶名/密碼或數字證書)登錄
  • 安全角色(管理員,主持人,查看器)存儲在服務器端。

然後,如果需要的話,您可以通過添加擴展的安全模式:在特定的資源

  • 分化每個用戶和每個角色的權利之間
  • 權利
  • 傳遞的權利
  • 特定動作的權限

但是這樣的複雜用戶權限和安全模型在您的應用程序中可能不需要。

+0

+1 .........非常翔實的答案...謝謝 – 2010-02-09 06:57:42

0

我同意Bozho。三種客戶端方法的另一點是:如果用戶以某種方式知道如何發送客戶端不可用的操作,該怎麼辦?如果同一用戶有兩個角色(因此需要有兩個客戶端)會怎麼樣?當然,你將有很多工作要做,維護一個客戶端...

2

我@Bozho同意除了以下:

使UI中可見的各種部件/啓用取決於安全檢查

實際上,你需要對數據進行確認非法訪問等被阻止在服務器端,不論客戶端UI是否可見/啓用。原因是任何客戶端UI禁用代碼都可以被破壞。事實上,一個壞人甚至可以完全繞過你的用戶界面,並逆轉你的客戶端和服務器代碼之間的應用程序特定協議。

這並不是說您不應該禁用/隱藏用戶不允許使用的部分UI。這不僅是體面安全/訪問控制的良好基礎。

(UPDATE:。@Bozho已經ammended他的回答立即添加服務器端阻止對他的列表,所以我現在也完全同意)

+0

沒錯。我忘記了最重要的 - 數據點。用戶界面檢查只是一個補充 – Bozho 2010-02-09 07:35:59

+0

+1您已經指出了一個非常重要的一點..謝謝 – 2010-02-09 08:58:56

相關問題