我目前正在構建一個Java財務應用程序,我需要向其添加權利,並且想知道人們採取了哪些方法來解決此問題,以及是否有任何人會推薦的第三方Java庫。標準權利模型
目前我有大量的用戶可以大致分爲角色(例如「交易者」)。每個角色可以擁有零個或多個與其關聯的權限(例如「創建交易」)。
設計決策:
是更好地有更一般的權限(如「貿易」),加上配套行動(「創建」,「更新」,「刪除」)或多個描述的權限(「如「創建交易」)?
什麼是一種很好的方式來模擬一些權限被參數化的事實(例如,用戶X有權限「創建交易」,但僅限於LSE交易的股票)?我已經看到這樣做名稱 - 值對之前,但這似乎相當醜陋。我唯一想到的想法是實現Permission作爲訪問者(請參閱下面的示例代碼),但擔心界面可能變得笨拙(a #商業對象增加)。
public interface Permission {
void checkPermission(Trade trade) throws SecurityPermission;
void checkPermission(AnotherBusinessObject obj) throws SecurityPermission;
}
public class ExchangePermission implements Permission {
private final Exchange exchange;
public void checkPermission(Trade trade) {
if (!exchange.equals(trade.getExchange())) {
throw new SecurityException();
}
}
}
任何想法/建議都是值得歡迎的。提前致謝。
真實,許可API是一個很好的起點+1 – dfa 2009-07-01 09:04:34