我建立,從網站上顯示數據庫中的信息的應用程序。該應用程序使用Spring Security進行保護,我的用戶可以擁有不同的角色。記錄應根據當前用戶的角色顯示。例如,我想顯示來自數據庫的書籍。角色X
只能看到一些書籍和作用Y
了。但角色ADMIN
可以看到所有的書籍。如何授權Spring應用程序的服務層?
現在我不知道在哪裏以及如何授權情況。我認爲服務層將是一個很好的地方,但我怎樣才能查詢當前用戶可以訪問的角色。
我的表是這樣的:
book (id, name)
role (id, name)
role_book (id, role_id, book_id)
因此,對於圖書的查詢將SELECT b.id, b.name FROM book b, role r role_book rb WHERE b.id = rb.book_id AND r.id = rb.role_id AND r.name IN (<roles of the current user>)
。噹噹前用戶具有ADMIN
角色時,我只需選擇數據庫中的所有書籍。
但是我怎麼執行的春季服務方法這些查詢?我認爲這是一項常見的授權任務。有沒有彈簧機制來做到這一點?