Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入

陌霖Java架構發表於2018-11-18

在分散式環境中,如何支援PC、APP(ios、android)等多端的會話共享,這也是所有公司都需要的解決方案,用傳統的session方式來解決,我想已經out了,我們是否可以找一個通用的方案,比如用傳統cas來實現多系統之間的sso單點登入或使用oauth的第三方登入方案? 今天給大家簡單講解一下使用spring攔截器Interceptor機制、jwt認證方式、redis分散式快取實現sso單點登入,閒話少說,直接把步驟記錄下來分享給大家:

  1. 引入jwt的相關jar包,在專案pom.xml中引入:

Java程式碼

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入

  1. 攔截器配置:

Java程式碼

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入

  1. 編寫jwt的加密或者解密工具類:

Java程式碼

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入
這個加密工具類是我從網上找的,如果各位要修改,可以按照自己業務修改即可。

  1. 建立Login.java物件,用來進行jwt的加密或者解密:

Java程式碼

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入

  1. 定義RedisLogin物件,用來通過uid往redis進行user物件儲存:

Java程式碼

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入
6. 編寫LoginInterceptor.java攔截器

Java程式碼

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入
7. 定義異常的LoginResponseCode

Java程式碼

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入
8. 編寫統一sso單點登入介面:

Java程式碼

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入
9. 測試sso單點登入:

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入
返回結果集:

Java程式碼

Java架構-spring+springmvc+Interceptor+jwt+redis實現sso單點登入
到此完畢!!

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

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

為什麼某些人會一直比你優秀,是因為他本身就很優秀還一直在持續努力變得更優秀,而你是不是還在滿足於現狀內心在竊喜! 合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!

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

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

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

相關文章