簡體   English   中英

我們什么時候應該使用@PreAuthorize和@Secured

[英]When should we use @PreAuthorize and @Secured

我讀過這篇stackoverflow帖子@Secured和@PreAuthorize在spring security 3中的區別是什么? 但是,我還不清楚兩者在安全方面有什么大不同? 與@Secured相比,在什么情況下我們應該選擇@PreAuthorize?

@PreAuthorize允許您對規則進行更細粒度的控制以保護o方法。 您可以在其中使用SpEL表達式。

確保與方法@Secured給你同樣的結果@PreAuthorize@Secured是有限的,你沒有得到盡可能多的選擇來調整規則(毛簡化它的規則是“靜態”)。

Spring Security 3.0引入了使用Spring EL表達式作為授權機制的能力,以及之前見過的配置屬性和訪問決策選民的簡單使用。 基於表達式的訪問控制建立在相同的體系結構上,但允許將復雜的布爾邏輯封裝在單個表達式中。

@PreAuthorize是一個較新的版本,所以你應該總是使用@PreAuthorize ,由於這里提到的原因,這確實更好。

事實上

@Secured("ROLE_ADMIN")@PreAuthorize("hasRole('ROLE_ADMIN')")

此外,@ PreAuthorize語法更具可讀性。

例如@Secured({"ROLE_USER", "ROLE_ADMIN"})被視為ROLE_USER or ROLE_ADMIN ,這是一種奇怪和令人困惑的東西。

在另一邊與@PreAuthorize您使用“春表達式語言(規划環境地政司)”中,可以定義明確orand表達,這顯然是方便和更具可讀性。

所以請使用@PreAuthorize

暫無
暫無

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

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