簡體   English   中英

使用@PreAuthorize的最佳做法

[英]Best practice to use @PreAuthorize

我有一個帶有安全方法的服務類( @PreAuthorize ,Spring Security)。

編碼是不好的做法?

也許我應該只在我的控制器類( @Controller@RestController )中使用這個注釋@PreAuthorize

是的,理想情況下,這種類型的授權檢查應該在Controller或第一個請求處理程序步驟(如您提到的RestController)中完成。 @PreAuthorize注釋放在Controller方法上更有意義,因為請求不會轉發到Service層,如果找不到正確的角色,將不會執行不必​​要的代碼(控制器方法中的代碼)。

如果您有多個控制器正在使用服務類的應用程序,那么您可以在服務層上使用@PreAuthorize注釋。 如果明天有人創建新控制器(並忘記使用正確的授權檢查)並使用現有服務類,那么您的應用程序將使用服務層授權正確處理授權。

通常我在服務層上使用@ PreAuthorize / @ PostAuthorize,並使用<sec:intercept-urljavaconfig來檢查Controllers / javaconfig的角色。

如果您必須檢查數據/對象內部的某些內容(例如,如果用戶有權更改來自某個特定公司的數據),您應該檢查服務層。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM