我已閱讀關於春季ACL,但它似乎不是很能幹。例如:Spring ACL是一個很好的ACL實現嗎?
- 沒有辦法列出許可Ÿ
- 沒有辦法自動爲您使用的ACL有什麼新的部署
的模式類型X的所有對象?將ACL從域模型中解耦出來很聰明嗎?
我已閱讀關於春季ACL,但它似乎不是很能幹。例如:Spring ACL是一個很好的ACL實現嗎?
的模式類型X的所有對象?將ACL從域模型中解耦出來很聰明嗎?
我們試圖使用Spring ACL模型,發現它很笨拙。我們結束了我們自己的,更簡單的(但不太通用的)實現,然後編寫Spring Security部分(accessDecisionManagers,Voters,Interceptors)來處理我們的模式。希望有所幫助。
您可能想看看Apache Shiro。
來自站點:Apache Shiro是一個功能強大且易於使用的Java安全框架,可執行身份驗證,授權,加密和會話管理。藉助Shiro易於理解的API,您可以快速輕鬆地保護任何應用程序 - 從最小的移動應用程序到最大的Web和企業應用程序。
許多人喜歡的方式四郎handles permissions
關於Shiro的唯一bugaboo,沒有OpenID或OAuth。主要的問題報告已有五年曆史,最多隻能每週關注一次。一個恥辱,因爲否則,Shiro看起來非常好,遠比Spring或Spring ACL簡單 – Dennis 2013-05-26 05:43:51
如果使用Hibernate,就可以自動加入此運行鍼對數據庫的ACL架構persistence.xml
:
<property name="hibernate.hbm2ddl.import_files" value="/import.sql"/>
<property name="hibernate.hbm2ddl.import_files_sql_extractor" value="org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor" />
並添加架構/resources/import.sql
您可以列出類似X的所有對象,並且具有許可權Y,如下所示:
select
*
from acl_entry a
join acl_object_identity b on a.acl_object_identity = b.id
join acl_class c on b.object_id_class = c.id
where
class = X
and mask = Y
但是,由於分頁問題,Spring Security ACL在行安全性方面存在根本性缺陷。如果您的數據庫支持它們,您應該在數據庫中使用視圖或內置工具來執行行安全性。
你到底做了什麼?滾動你自己的? – NimChimpsky 2013-09-26 13:21:53