帶你詳細(xì)了解Spring Security的注解方式開(kāi)發(fā)
默認(rèn)情況下,不會(huì)開(kāi)啟注解,如果想用注解,需要開(kāi)啟注解支持。
在啟動(dòng)類上開(kāi)啟:
@EnableGlobalMethodSecurity(securedEnabled = true)
@SpringBootApplication @ComponentScan(basePackages = {"com.example"}) // 開(kāi)啟springSecurity注解支持 @EnableGlobalMethodSecurity(securedEnabled = true) public class SeqeurityTestApplication { public static void main(String[] args) { SpringApplication.run(SeqeurityTestApplication.class, args); } }
以下的注解可以放在Service接口或方法上,也可以寫(xiě)到Controller 的方法上。但通常寫(xiě)在控制器方法上。
常用的注解
(1)@Secured
相當(dāng)于配置類中的hasRole()方法。
@Secured 是專門(mén)用于判斷是否具有某個(gè)角色。能寫(xiě)在方法上或類上。參數(shù)要以 ROLE_開(kāi)頭。
使用:
// 只有 有角色abc的登錄者才能訪問(wèn)這個(gè)接口 @Secured(value="ROLE_abc") @RequestMapping (value = "/login1") public String login() { return "login11"; }
上邊的角色對(duì)應(yīng)的是:
(2)@PreAuthorize / @PostAuthorize
@PreAuthorize / @PostAuthorize 都是方法級(jí)別的注解。
@PreAuthorize 表示訪問(wèn)方法或類在執(zhí)行之前先判斷權(quán)限,大多數(shù)情況下使用這個(gè)注解,注解的參數(shù)和access() 方法參數(shù)取值相同,都是權(quán)限表達(dá)式。
@PostAuthorize 表示方法或類執(zhí)行結(jié)束后判斷權(quán)限,此注解很少使用。
使用上邊兩個(gè)注解,必須要開(kāi)啟注解支持:
// 開(kāi)啟springSecurity注解支持 @EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
測(cè)試
// 只有 有角色abc的登錄者才能訪問(wèn)這個(gè)接口,參數(shù)是access表達(dá)式 @PreAuthorize("hasRole('abc')") // 可以寫(xiě)成 @PreAuthorize("hasRole('ROLE_abc')") @RequestMapping (value = "/login1") public String login() { return "login11"; }
總結(jié)
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
SpringMVC中請(qǐng)求參數(shù)的獲取方式
這篇文章主要為大家介紹了SpringMVC中請(qǐng)求參數(shù)的獲取方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05SpringBoot實(shí)現(xiàn)redis延遲隊(duì)列的示例代碼
延時(shí)隊(duì)列場(chǎng)景在我們?nèi)粘I(yè)務(wù)開(kāi)發(fā)中經(jīng)常遇到,它是一種特殊類型的消息隊(duì)列,本文就來(lái)介紹一下SpringBoot實(shí)現(xiàn)redis延遲隊(duì)列的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02Java超過(guò)long類型的數(shù)據(jù)表示方法
這篇文章主要給大家介紹Java超過(guò)long類型的數(shù)據(jù)如何表示,在 Java 中,如果需要表示超過(guò) long 類型范圍的數(shù)據(jù),可以使用 BigInteger 類,BigInteger 是 Java 提供的一個(gè)用于處理任意精度整數(shù)的類,它可以表示非常大或非常小的整數(shù),需要的朋友可以參考下2023-09-09Java的String類中的startsWith方法和endsWith方法示例詳解
大家應(yīng)該都知道startsWith()方法用于檢測(cè)字符串是否以指定的前綴開(kāi)始,endsWith()方法用于測(cè)試字符串是否以指定的后綴結(jié)束,本文就Java的String類中的startsWith方法和endsWith方法給大家詳細(xì)講解,感興趣的朋友一起看看吧2023-11-11Spring 單元測(cè)試中如何進(jìn)行 mock的實(shí)現(xiàn)
這篇文章主要介紹了Spring 單元測(cè)試中如何進(jìn)行 mock的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12java利用mybatis攔截器統(tǒng)計(jì)sql執(zhí)行時(shí)間示例
這篇文章主要介紹了java利用mybatis攔截器統(tǒng)計(jì)sql執(zhí)行時(shí)間示例,該攔截器攔截mybatis的query和update操作,能統(tǒng)計(jì)sql執(zhí)行時(shí)間2014-03-03