Spring Boot 之 RESRful API 許可權控制

Java架構師筆記發表於2018-11-21

一、為何用RESTful API

1.1 RESTful是什麼?

RESTful(Representational StateTransfer)架構風格,是一個Web自身的架構風格,底層主要基於HTTP協議(ps:提出者就是HTTP協議的作者),是分散式應用架構的偉大實踐理論。RESTful架構是無狀態的,表現為請求-響應的形式,有別於基於Bower的SessionId不同。

1.2理解REST有五點:

1.資源

2.資源的表述

3.狀態的轉移

4.統一介面

5.超文字驅動

需要理解詳情,請點[傳送門]

1.3 什麼是REST API?

基於RESTful架構的一套網際網路分散式的API設計理論。和上面資源,狀態和統一介面有著密切的關係。

為啥分散式網際網路架構很常見呢?請看下面兩個模式

MVC模式:

Spring Boot 之 RESRful API 許可權控制

REST API模式:

Spring Boot 之 RESRful API 許可權控制

1.4 許可權怎麼控制?

RESTful針對資源的方法定義分簡單和關聯複雜兩種。

基本方法定義:

Spring Boot 之 RESRful API 許可權控制

資源之間的關聯方法如下定義:

Spring Boot 之 RESRful API 許可權控制

那麼許可權如何控制?

二、許可權控制

前面說到,RESTful是無狀態的,所以每次請求就需要對起進行認證和授權。

2.1 認證

身份認證,即登入驗證使用者是否擁有相應的身份。簡單的說就是一個Web頁面點選登入後,服務端進行使用者密碼的校驗。

2.2 許可權驗證(授權)

也可以說成授權,就是在身份認證後,驗證該身份具體擁有某種許可權。即針對於某種資源的CRUD,不同使用者的操作許可權是不同的。

一般簡單專案:做個sign(加密加鹽引數)+ 針對使用者的access_token

複雜的話,加入 SLL ,並使用OAuth2進行對token的安全傳輸。

自然,技術服務於應用場景。既簡單又可以處理應用場景即可。簡單,實用即可~
複製程式碼

三、Access Token許可權解決

3.1 AccessToken 攔截器

Spring Boot 之 RESRful API 許可權控制

第一步:從request獲取token

第二步:根據token獲取校驗物件資訊(也可以加入過期時間校驗,簡單)

第三步:通過校驗資訊獲取使用者資訊

3.2 配置攔截

Spring Boot 之 RESRful API 許可權控制

第一步:將攔截器配置成Bean

第二步:攔截器註冊注入該攔截器,並配置攔截的URL

token存哪裡?

ehcache,redis,db都可以。自然簡單的當然是db。

四、小結

  1. REST API

  2. Spring Boot 攔截器

歡迎大家和我一起學習Spring Boot構建微服務雲架構,我這邊會將近期研發的Spring Boot微服務雲架構的搭建過程和精髓記錄下來,幫助更多有興趣研發Spring Boot框架的朋友,大家來一起探討Spring Boot架構的搭建過程及如何運用於企業專案

我本人邀約各大BATJ架構大牛共創Spring Boot構建微服務架構的交流社群。 (群號:364677697)歡迎各路架構師、開發者,學習與交流使用Spring Boot諸多強大元件的實戰經驗。

為什麼某些人會一直比你優秀,是因為他本身就很優秀還一直在持續努力變得更優秀,而你是不是還在滿足於現狀內心在竊喜!

合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!

希望此文能幫到大家的同時,也聽聽大家的觀點。歡迎留言討論,加關注,分享你的高見!持續更新

To-陌霖Java架構
複製程式碼

分享網際網路最新文章 關注網際網路最新發展

相關文章