簡體   English   中英

在客戶端-服務器環境中為用戶類建模的最佳實踐

[英]Best practice for modelling a user class in a client-server-environment

我們正在為大學圖書館開發客戶端和服務器應用程序。 除了所有圖書管理和借閱功能外,該應用程序還必須能夠管理用戶。

我們決定了3種不同的用戶類型

  1. 來賓 (可以查看基本信息)
  2. 登錄的用戶 (訪問基本功能,例如借書)
  3. 管理員 (完全訪問權限,包括管理書籍和用戶)

這是我的第一個更大的項目,即使我閱讀了許多Java講座,也無法決定在客戶端*以下需求建模的好方法:

  • 客戶端應用程序必須管理當前登錄名。 當前用戶可以更改其基本信息。
  • 管理員可以更改所有信息

現在我的問題是:即使當前用戶只能是Guest,每個User類都應該具有getter和setters嗎? 在沒有更改信息權限的情況下調用setXY()會發生什么情況? 授權應在代碼中的何處進行? 用戶類別? 服務器API類?

這樣的示例或指向現有模型的鏈接將非常有幫助。 提前致謝。

一種方法是使用繼承,即基礎抽象User類以及AnonymousUser,GuestUser和AdminUser。 每個類都擴展了其父級的功能。 這在簡單的場景中有效,但不靈活,尤其難以擴展。

更好的解決方案是創建一個實現所有必需功能的User類(在前面的示例中為〜AdminClass),並將其包裝在知道不同用戶角色並可能限制對單個方法訪問的代理中。

這些檢查應始終在服務器上進行,因為您不能阻止惡意客戶端的請求。

只是好奇-這是一項家庭作業嗎? 您並不是說您要為一所真正的大學創建一個可以在生產環境中運行的真實系統,對嗎?

我認為您需要基於角色的安全解決方案,而不是類層次結構。 我建議不要自己動手,不要使用諸如Spring Security之類的工具。

我要補充一點,您也應該使用Spring。 它將使該應用程序更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM