1. 引入jwt的相关jar包,在项目pom.xml中引入:
![](https://i-blog.csdnimg.cn/blog_migrate/d3cbe720f4ab43a3d1a08a063295ebc2.webp?x-image-process=image/format,png)
2. 拦截器配置:
![](https://i-blog.csdnimg.cn/blog_migrate/99fc2d4b5e7bb561e01b1115df64e6c2.webp?x-image-process=image/format,png)
我这里简单配置了要拦截的url和过滤的url(这个根据自己项目来定)
3. 编写jwt的加密或者解密工具类:
![](https://i-blog.csdnimg.cn/blog_migrate/be386901d66c658b56be5311d2811c43.webp?x-image-process=image/format,png)
这个加密工具类是我从网上找的,如果各位要修改,可以按照自己业务修改即可。
4. 创建Login.java对象,用来进行jwt的加密或者解密:
![](https://i-blog.csdnimg.cn/blog_migrate/d596bb25939058af4c4b418410999d9d.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/9db0910f7b705ae92bcab1dd65c751fe.webp?x-image-process=image/format,png)
5. 定义RedisLogin对象,用来通过uid往redis进行user对象存储:
![](https://i-blog.csdnimg.cn/blog_migrate/8794abb0186d2b9bdd2501eeacf09e60.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/9a884ae6cbab06299b4d86b04c1e6319.webp?x-image-process=image/format,png)
6. 编写LoginInterceptor.java拦截器
![](https://i-blog.csdnimg.cn/blog_migrate/118da4a200377676fc6cb62ce7e147e2.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/43d190453667e32e0c7dba16ddf989b8.webp?x-image-process=image/format,png)
7. 定义异常的LoginResponseCode
![](https://i-blog.csdnimg.cn/blog_migrate/c3a92acd22ac0e1b9ffac555d6ec6712.webp?x-image-process=image/format,png)
8. 编写统一sso单点登录接口:
![](https://i-blog.csdnimg.cn/blog_migrate/165922ccae5d158e8a9eb21a5e3882c2.webp?x-image-process=image/format,png)
9. 测试sso单点登录:
![](https://i-blog.csdnimg.cn/blog_migrate/8e0c92d44b4e08b49b0637841ee602e7.webp?x-image-process=image/format,png)
返回结果集:
![](https://i-blog.csdnimg.cn/blog_migrate/d9df9722260d99b5010e3f34c40f6d78.webp?x-image-process=image/format,png)
愿意了解框架技术或者源码的朋友直接求求交流分享技术:2042849237
分布式的一些解决方案,有愿意了解的朋友可以找我们团队探讨
更多详细源码参考来源:http://minglisoft.cn/technology
标签:spring,springmvc,Spring MVC,web开发,java分布式架构,shiro,mybatis,kafka,J2ee