SpringBoot整合SpringSecurityOauth2实现鉴权
SpringBoot整合SpringSecurityOauth2實(shí)現(xiàn)鑒權(quán)-動(dòng)態(tài)權(quán)限
寫(xiě)在前面
思考:為什么需要鑒權(quán)呢?
系統(tǒng)開(kāi)發(fā)好上線后 ,API接口會(huì)暴露在互聯(lián)網(wǎng)上會(huì)存在一定的安全風(fēng)險(xiǎn),例如:爬蟲(chóng) 、惡意訪問(wèn)等 。因此,我們需要對(duì)非開(kāi)放API接口進(jìn)行用戶鑒權(quán) ,鑒權(quán)通過(guò)之后再允許調(diào)用。
準(zhǔn)備
spring-boot:2.1.4.RELEASE
spring-security-oauth2:2.3.3.RELEASE(如果要使用源碼,不要隨意改動(dòng)這個(gè)版本號(hào) ,因?yàn)?.4往上的寫(xiě)法不一樣了)
mysql :5.7
效果展示
這邊只用了postman做測(cè)試,暫時(shí)未使用前端頁(yè)面來(lái)對(duì)接,下個(gè)版本角色菜單權(quán)限分配的會(huì)有頁(yè)面的展示
1、訪問(wèn)開(kāi)放接口 http://localhost:7000/open/hello

2、不帶token訪問(wèn)受保護(hù)接口 http://localhost:7000/admin/user/info

3 、登錄后獲取token,帶上token訪問(wèn) ,成功返回了當(dāng)前的登錄用戶信息


實(shí)現(xiàn)
oauth2一共有四種模式 ,這邊就不做講解了,網(wǎng)上搜一搜,千篇一律
因?yàn)楝F(xiàn)在只考慮做單方應(yīng)用的 ,所以使用的是密碼模式。
后面會(huì)出一篇SpringCloud+Oauth2的文章,網(wǎng)關(guān)鑒權(quán)
講一下幾個(gè)點(diǎn)吧
1、攔截器配置動(dòng)態(tài)權(quán)限

新建一個(gè) MySecurityFilter類(lèi),繼承AbstractSecurityInterceptor