我想在我的項目中實現對象級權限。更具體地說,會有一個用戶,一個學校和一個學生班。每個學生將屬於一所學校。系統的每個用戶也將屬於一所學校。因此,系統的每個用戶只能訪問屬於他學校的學生。沒有彈簧安全性的彈簧對象級權限ACL
我讀過很多地方,這可以在彈簧安全ACL的幫助下完成。這需要在我的數據庫中創建一些ACL_表(如果我沒有錯,則爲4),並且對每個對象都有特定的權限!所以我會在ACL_ENTRY中擁有許多行作爲許多對象!
這是對我的應用程序的矯枉過正,因爲對象已經知道誰有和沒有訪問它 - 爲什麼我還需要一個額外的acl_entry?我想要的是檢查要更新的對象是否屬於特定用戶,並返回允許或不允許。選擇同樣如此 - 只返回屬於特定用戶的對象。
從我能理解,這在我的數據訪問層做 - 如果我去做了其他地方我有疑問的問題(因爲我需要檢查所有對象逐一看看他們屬於特定用戶)。對於我的數據訪問,我使用了spring-data以及擴展JpaRepository的接口。我可以添加我自己的保存/選擇方法嗎?我如何從這些方法獲取用戶對象?有沒有人做過類似的事情來幫助我開始?
看上去不錯,但選擇時,如何過濾我的結果嗎?另外,如何在AOP方法中找到Student對象*?我對AOP不是很熟悉:( – Serafeim
請看我的更新回答 –
數據訪問過濾如何? – Serafeim