溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Spring Security的注解方式進行項目開發(fā)

發(fā)布時間:2021-08-25 06:27:20 來源:億速云 閱讀:143 作者:chen 欄目:開發(fā)技術

這篇文章主要講解了“怎么用Spring Security的注解方式進行項目開發(fā)”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么用Spring Security的注解方式進行項目開發(fā)”吧!

默認情況下,不會開啟注解,如果想用注解,需要開啟注解支持。

在啟動類上開啟:

@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

相當于配置類中的hasRole()方法。

@Secured 是專門用于判斷是否具有某個角色。能寫在方法上或類上。參數要以 ROLE_開頭。

怎么用Spring Security的注解方式進行項目開發(fā)

使用:

// 只有 有角色abc的登錄者才能訪問這個接口
@Secured(value="ROLE_abc")
@RequestMapping (value = "/login1")
public String login() {
    return "login11";
}

上邊的角色對應的是:

怎么用Spring Security的注解方式進行項目開發(fā)

(2)@PreAuthorize / @PostAuthorize

@PreAuthorize / @PostAuthorize 都是方法級別的注解。

@PreAuthorize 表示訪問方法或類在執(zhí)行之前先判斷權限,大多數情況下使用這個注解,注解的參數和access() 方法參數取值相同,都是權限表達式。

@PostAuthorize 表示方法或類執(zhí)行結束后判斷權限,此注解很少使用。

怎么用Spring Security的注解方式進行項目開發(fā)

使用上邊兩個注解,必須要開啟注解支持:

// 開啟springSecurity注解支持
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)

測試

// 只有 有角色abc的登錄者才能訪問這個接口,參數是access表達式
@PreAuthorize("hasRole('abc')") // 可以寫成 @PreAuthorize("hasRole('ROLE_abc')")
@RequestMapping (value = "/login1")
public String login() {
    return "login11";
}

感謝各位的閱讀,以上就是“怎么用Spring Security的注解方式進行項目開發(fā)”的內容了,經過本文的學習后,相信大家對怎么用Spring Security的注解方式進行項目開發(fā)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI