溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

快速實(shí)現(xiàn)Spring security權(quán)限認(rèn)證管理的方法

發(fā)布時(shí)間:2020-08-19 14:21:59 來(lái)源:億速云 閱讀:196 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)快速實(shí)現(xiàn)Spring security權(quán)限認(rèn)證管理的方法,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

一、構(gòu)建項(xiàng)目

話(huà)不多說(shuō)直接開(kāi)始。

pom.xml:

spring security的核心依賴(lài)如下

<!-- spring security -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- spring security data -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-data</artifactId>
</dependency>

配置用戶(hù)主類(lèi):User 同時(shí)實(shí)現(xiàn)security 的 UserDetails

快速實(shí)現(xiàn)Spring security權(quán)限認(rèn)證管理的方法

重寫(xiě)它的幾個(gè)方法,默認(rèn)配置為 false 需變?yōu)?true。快速實(shí)現(xiàn)Spring security權(quán)限認(rèn)證管理的方法

配置 UserService 實(shí)現(xiàn) UserDetailsService 接口,同時(shí)重寫(xiě) loadUserByUsername 方法 。

該方法是security登錄時(shí)使用的方法,查詢(xún)的信息的需包含用戶(hù)(User)信息以及角色(Role)信息。

快速實(shí)現(xiàn)Spring security權(quán)限認(rèn)證管理的方法

二、測(cè)試

創(chuàng)建 UserController, 由于我們?cè)谏厦媾渲昧?antMatchers("/login","/register") 使得在未登錄時(shí)只允許訪(fǎng)問(wèn)這兩個(gè)接口。

快速實(shí)現(xiàn)Spring security權(quán)限認(rèn)證管理的方法

再未登錄時(shí)訪(fǎng)問(wèn)非許可的接口會(huì)轉(zhuǎn)到login登錄。
效果如下:

快速實(shí)現(xiàn)Spring security權(quán)限認(rèn)證管理的方法

登錄成功后訪(fǎng)問(wèn) /users

快速實(shí)現(xiàn)Spring security權(quán)限認(rèn)證管理的方法

我們很方便的實(shí)現(xiàn)了登錄授權(quán),使得我們的API得到了保護(hù)。

如需指定區(qū)分不同角色下的訪(fǎng)問(wèn)權(quán)限時(shí)只要在Controller加上一下注解即可。

@PreAuthorize("hasRole('ROLE_ADMIN')")//需要管理員身份

@PreAuthorize("hasRole('ROLE_USER')")//需要用戶(hù)身份

三、結(jié)束

通過(guò)以上的簡(jiǎn)要敘述我們完成了Springboot + mybatis 整合 Spring security。
由于時(shí)間有限在文中只做簡(jiǎn)要敘述,訪(fǎng)問(wèn)我的Github查看完整的Demo。

url: https://github.com/admin79/SecurityDemo


關(guān)于快速實(shí)現(xiàn)Spring security權(quán)限認(rèn)證管理的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI