SpringBootSecurity學習(16)先後端分離版之 OAuth2.0 加密配置

示例代碼的改進

前面使用spring cloud security和spring cloud oauth2寫了一個第三方受權的例子,例子很是的簡單,主要目的是用來熟悉OAuth2.0 申請受權的整個流程,這個簡單的示例確定是不能直接用於生產環境的,還有不少須要改進的地方,咱們來總結一下:git

  • 一、只演示了受權碼的形式,其它的三種(隱藏式,密碼式,客戶端憑證)並無熟悉
  • 二、密碼和祕鑰是未加密的
  • 三、oauth的客戶端配置,包括id,祕鑰等信息是在內存中配置死的,沒法動態增長
  • 四、token也是放在內存中存儲的,沒法手動廢止
  • 五、jwt的生成使用的是簡單的祕鑰形式,最好使用非對稱加密的方式,更加安全可靠
  • 六、令牌的申請權限配置不太合理
  • 七、資源服務中的jwt和令牌驗證配置也不太靈活
  • 八、受權流程應該結合eureka開發和使用
  • 九、沒有驗證令牌中繼特性,等等等等

從上面列舉的問題能夠看出,就算示例代碼能運行,流程也清楚,可是要學會使用Spring Cloud Security,尤爲要在生產環境使用,還須要對每一個細節都能掌握和了解才行。spring

加密配置

首先咱們來改進第一個地方,實現加密配置。你們知道用戶註冊以後,存儲用戶資料的時候,用戶密碼在數據庫中最好是加密後再保存,一樣的道理,oauth的客戶端信息最終也是要存儲在數據庫而不是直接在代碼中配置死的,它的secret字段也應該加密後再存儲,下面在受權服務中來配置加密,首先修改security配置類,配置加密方式:數據庫

file

而後將登錄用戶的密碼配置爲加密:segmentfault

file

而後修改受權配置類,將客戶端配置中的secret配置爲加密:安全

file

這樣加密配置就完成了。資源服務不用作任何修改。spring-boot

測試

配置上面三個加密的地方後,加密就配置好了,下面來測試一下,其實測試流程與前面的同樣,客戶端感知不到,獲得的access_token以下:測試

file

最終訪問結果以下:加密

file

代碼地址:https://gitee.com/blueses/spr... 17 18spa

相關文章
相關標籤/搜索