[英]How to implement permission control in java?
我們開發了一個應用程序,需要實現權限控制,這意味着有人只能搜索數據庫中的特定記錄:
我知道spring安全性,但實際上我們如何使用spring security實現上面的功能呢?
我們可以用SQL實現權限控制,這意味着首先選擇他的角色,然后選擇他所有的下屬記錄,如下所示:
select * from table where staffid in (.......)
但這種方法看起來太原始,難以維護。 所以我的問題是:我們可以使用任何框架和實踐來實現一個體面的權限控制機制嗎? 如何在應用程序中實現權限控制?
1)員工只能搜索自己的記錄。 2)主管可以搜索其下屬的記錄。
這些似乎是您必須在DAO層實現的規則
3)主管可以看到“批准”按鈕來批准申請
- 這可以通過JSF中基於UI角色的渲染來完成
4)工作人員只能提交申請。
Spring安全方法攔截器可以在這里使用: http : //static.springsource.org/spring-security/site/docs/3.0.x/reference/secure-object-impls.html
使用postgres數據庫,您可以從表繼承表。 即:
CREATE TABLE access{
admin bool default false,
supervisor bool default false,
staff_user_id bigint default null,
...
}
CREATE TABLE flower(
flower_id serial,
name varchar(24)
)inherits (access)
然后,您可以創建更新/刪除觸發器,並區分連接用戶。
這可能是一個解決方案。
正如您所說,實體“角色”和“業務數據”必須在數據庫中保持獨立 - 您可以加入角色表並僅選擇適當的數據,而不是多次調用數據庫。
如果您尚未確定它太復雜,您應該查看Spring Security ACL 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.