SpringBootSecurity學習(25)前後端分離版之OAuth2.0 令牌中繼

增加Eureka

前面介紹的項目都是授權服務和資源服務單獨兩個,這樣在資源服務中的 check_token 地址都是寫死的地址 :

SpringBootSecurity學習(25)前後端分離版之OAuth2.0 令牌中繼

下面我們把eureka加上,這樣就可以直接用服務名了。eureka服務的搭建不再討論,在服務中加eureka只需要改兩個地方,就是加依賴和修改配置:

SpringBootSecurity學習(25)前後端分離版之OAuth2.0 令牌中繼

增加配置如下:

SpringBootSecurity學習(25)前後端分離版之OAuth2.0 令牌中繼

然後就可以把資源服務中的固定ip改為服務名:

SpringBootSecurity學習(25)前後端分離版之OAuth2.0 令牌中繼

增加令牌中繼

從授權服務獲取令牌以後,直接訪問一個資源服務是沒有問題的,但是如果資源服務又去調用其它資源服務,就會產生一個問題,就是令牌無法自動往下傳遞。要實現令牌中繼我們就需要寫一個攔截器,將token放到請求的header中。

首先在服務中增加feign組件:

SpringBootSecurity學習(25)前後端分離版之OAuth2.0 令牌中繼

增加註解 @EnableFeignClients :

SpringBootSecurity學習(25)前後端分離版之OAuth2.0 令牌中繼

注意上面的依賴和註解調用方和被調用方都要增加。然後在被調用方寫一個接口:

SpringBootSecurity學習(25)前後端分離版之OAuth2.0 令牌中繼

在調用方使用feign調用:

SpringBootSecurity學習(25)前後端分離版之OAuth2.0 令牌中繼

然後在調用方寫一個測試接口:

SpringBootSecurity學習(25)前後端分離版之OAuth2.0 令牌中繼

現在直接申請令牌,然後訪問調用方測試接口,會出現如下401錯誤:

SpringBootSecurity學習(25)前後端分離版之OAuth2.0 令牌中繼

下面在調用方增加一個攔截器,在header中增加令牌:

SpringBootSecurity學習(25)前後端分離版之OAuth2.0 令牌中繼

測試

下面直接申請令牌,訪問調用方的測試接口,可以看到令牌中繼的結果:

SpringBootSecurity學習(25)前後端分離版之OAuth2.0 令牌中繼

代碼地址:https://gitee.com/blueses/spring-boot-security 30 31 32 33

本文由博客一文多發平臺 https://openwrite.cn?from=article_bottom 發佈!


分享到:


相關文章: