帶你詳細(xì)了解Spring Security的注解方式開發(fā)
默認(rèn)情況下,不會(huì)開啟注解,如果想用注解,需要開啟注解支持。
在啟動(dòng)類上開啟:
@EnableGlobalMethodSecurity(securedEnabled = true)
@SpringBootApplication
@ComponentScan(basePackages = {"com.example"})
// 開啟springSecurity注解支持
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SeqeurityTestApplication {
public static void main(String[] args) {
SpringApplication.run(SeqeurityTestApplication.class, args);
}
}
以下的注解可以放在Service接口或方法上,也可以寫到Controller 的方法上。但通常寫在控制器方法上。
常用的注解
(1)@Secured
相當(dāng)于配置類中的hasRole()方法。
@Secured 是專門用于判斷是否具有某個(gè)角色。能寫在方法上或類上。參數(shù)要以 ROLE_開頭。

使用:
// 只有 有角色abc的登錄者才能訪問這個(gè)接口
@Secured(value="ROLE_abc")
@RequestMapping (value = "/login1")
public String login() {
return "login11";
}
上邊的角色對(duì)應(yīng)的是:

(2)@PreAuthorize / @PostAuthorize
@PreAuthorize / @PostAuthorize 都是方法級(jí)別的注解。
@PreAuthorize 表示訪問方法或類在執(zhí)行之前先判斷權(quán)限,大多數(shù)情況下使用這個(gè)注解,注解的參數(shù)和access() 方法參數(shù)取值相同,都是權(quán)限表達(dá)式。
@PostAuthorize 表示方法或類執(zhí)行結(jié)束后判斷權(quán)限,此注解很少使用。

使用上邊兩個(gè)注解,必須要開啟注解支持:
// 開啟springSecurity注解支持 @EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
測(cè)試
// 只有 有角色abc的登錄者才能訪問這個(gè)接口,參數(shù)是access表達(dá)式
@PreAuthorize("hasRole('abc')") // 可以寫成 @PreAuthorize("hasRole('ROLE_abc')")
@RequestMapping (value = "/login1")
public String login() {
return "login11";
}
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Java中private關(guān)鍵字詳細(xì)用法實(shí)例以及解釋
這篇文章主要給大家介紹了關(guān)于Java中private關(guān)鍵字詳細(xì)用法實(shí)例以及解釋的相關(guān)資料,在Java中private是一種訪問修飾符,它可以用來控制類成員的訪問權(quán)限,文中將用法介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
java中兩個(gè)字符串的拼接、整數(shù)相加和浮點(diǎn)數(shù)相加實(shí)現(xiàn)代碼
這篇文章主要為大家介紹java中從鍵盤讀取用戶輸入兩個(gè)字符串,實(shí)現(xiàn)這兩個(gè)字符串的拼接、整數(shù)相加和浮點(diǎn)數(shù)相加,并輸出結(jié)果,需要的朋友可以參考下2021-05-05
Java Web開發(fā)防止多用戶重復(fù)登錄的完美解決方案
在web項(xiàng)目開發(fā)中,很多情況下都可以讓同一個(gè)賬號(hào)信息在不同的登錄入口登錄很多次,這樣子做的不是很完善。一般解決這種情況有兩種解決方案,小編呢主要以第二種方式給大家介紹具體的實(shí)現(xiàn)方法,對(duì)java web 防止多用戶重復(fù)登錄的解決方案感興趣的朋友一起看看吧2016-11-11
Spring?Boot?利用?XML?方式整合?MyBatis
這篇文章主要介紹了Spring?Boot?利用?XML?方式整合?MyBatis,文章圍繞主題的相關(guān)資料展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,組要的小伙伴可以參考一下2022-05-05
jasypt SaltGenerator接口定義方法源碼解讀
這篇文章主要為大家介紹了jasypt SaltGenerator接口定義方法源碼解讀,,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09

