[英]Spring Boot REST API application level authorization
目前正在構建基於 Spring Boot 的 REST API 應用程序(示例集中學校管理系統)。 有各種 DB 實體可以通過 API 獲得 CRUD 訪問權限,如Account 、 School 、學校的任何子實體,如教師、學生等。
假設我們有很多 API,比如
GET /api/getschooldetails?account_id=1&school_id=1
GET /api/getteacherlist?account_id=3&school_id=2
GET /api/getstudentdetails?account_id=3&school_id=2&student_id=1
類似的 POST 與 JSON 請求正文
POST /api/addteacher
request : {"account_id":3,"school_id":2,"teachername":"XYZ"}
and
POST /api/updatestudentname
request : {"account_id":3,"school_id":2,"student_id":4,"name":"ABC"}
如何在為請求參數API級別添加授權/ JSON字段,以便那些誰認證為用戶的school_id=2
應該得到訪問錯誤,如果他們試圖改變/api/getteacherlist?account_id=3&school_id=2
,使它/api/getteacherlist?account_id=3&school_id=3
並獲取school_id=3
詳細信息。
考慮為每個控制器類添加@Before
AOP 點以解析查詢參數/JSON 並進行基於數據庫的用戶 ID 驗證,即如果用戶 ID 登錄(通過 Spring Security 身份驗證)可以訪問請求中提到的 account_id 和 school_id,因為它們是一部分避免代碼重復或在執行實際 CRUD 操作之前在每個 DAO 類中添加相同的檢查。 請指導是否還有其他使用Spring的方法。
請不要發明自定義安全性。 使用例如 Keycloak 和 Spring Security https://www.baeldung.com/spring-boot-keycloak
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.