1. 引入jwt的相關jar包,在專案pom.xml中引入:
![spring+springmvc+Interceptor+jwt+redis實現sso單點登入](https://i.iter01.com/images/9302a3346686e344f3e88d6135a600abca6892b35123ee8732c592451803134f.png)
2. 攔截器配置:
![spring+springmvc+Interceptor+jwt+redis實現sso單點登入](https://i.iter01.com/images/eac5da503f1bcb058e30be08cd6ccd4351dfd9fa92a262f358bfbc793383636d.png)
我這裡簡單配置了要攔截的url和過濾的url(這個根據自己專案來定)
3. 編寫jwt的加密或者解密工具類:
![spring+springmvc+Interceptor+jwt+redis實現sso單點登入](https://i.iter01.com/images/4e8770b0905abb137713694b6b929e0d4df07b16fcd62983100815daef935c9a.png)
這個加密工具類是我從網上找的,如果各位要修改,可以按照自己業務修改即可。
4. 建立Login.java物件,用來進行jwt的加密或者解密:
![spring+springmvc+Interceptor+jwt+redis實現sso單點登入](https://i.iter01.com/images/c84e9fa6c25c6d95725956926ceb1a550bbbe28453147dcc31325b5acf2cc0fe.png)
![spring+springmvc+Interceptor+jwt+redis實現sso單點登入](https://i.iter01.com/images/1033961648e6ddb1c8a71120ed5790f5d5310c6745763ba282962d1aeed637d5.png)
5. 定義RedisLogin物件,用來通過uid往redis進行user物件儲存:
![spring+springmvc+Interceptor+jwt+redis實現sso單點登入](https://i.iter01.com/images/6fa382206c47dbbe17554369f656cd30e359e93012c7786e0fa07a074fccb1de.png)
![spring+springmvc+Interceptor+jwt+redis實現sso單點登入](https://i.iter01.com/images/4ee10e3eefcd9cb0c52e1d74fac2ef2710d1f193a760b608dd220c0ab5488f84.png)
6. 編寫LoginInterceptor.java攔截器
![spring+springmvc+Interceptor+jwt+redis實現sso單點登入](https://i.iter01.com/images/115d401ccb53111ccc9609f2b8e955e596ad407e639479e9bb76bda66e46f791.png)
![spring+springmvc+Interceptor+jwt+redis實現sso單點登入](https://i.iter01.com/images/ca75e36fdf6f5d39d36853d7aa363c951bd8031477fb70659c896e58e2f2dbbb.png)
7. 定義異常的LoginResponseCode
![spring+springmvc+Interceptor+jwt+redis實現sso單點登入](https://i.iter01.com/images/f72a949a69003bd835e8881ee66139bff3b7867040852a3e7a0cfdfc8f3114fc.png)
8. 編寫統一sso單點登入介面:
![spring+springmvc+Interceptor+jwt+redis實現sso單點登入](https://i.iter01.com/images/e5884c93ae26ff91ece88503c247fc5cd795e65e9704989a6f24757957cbda42.png)
9. 測試sso單點登入:
![spring+springmvc+Interceptor+jwt+redis實現sso單點登入](https://i.iter01.com/images/5c25bacd8a0812ce96c8286294617c0e06a155845e5bb87e7798d56f981ba319.png)
返回結果集:
![spring+springmvc+Interceptor+jwt+redis實現sso單點登入](https://i.iter01.com/images/2314c42a295889b7cf67a9282bd09c88dc551374bc4403cac6f653c0655d98fc.png)
願意瞭解框架技術或者原始碼的朋友直接求求交流分享技術:2042849237
分散式的一些解決方案,有願意瞭解的朋友可以找我們團隊探討