用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月 忘记密码?

发表随想


还能输入:200字

用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月 忘记密码?

发表随想


还能输入:200字

请选择技术分类

 *如果你找不到更细的分类,可以选择上级分类
当前位置:云代码 - 技术问答 - Spring

spring+springmvc+Interceptor+jwt+redis实现sso单点登录

 悬赏:10 | 提问者:公园 | 浏览:602
举报 | 2017-11-01

在分布式环境中,如何支持PC、APP(ios、android)等多端的会话共享,这也是所有公司都需要的解决方案,用传统的session方式来解决,我想已经out了,我们是否可以找一个通用的方案,比如用传统cas来实现多系统之间的sso单点登录或使用oauth的第三方登录方案? 今天给大家简单讲解一下使用spring拦截器Interceptor机制、jwt认证方式、redis分布式缓存实现sso单点登录,闲话少说,直接把步骤记录下来分享给大家:

1. 引入jwt的相关jar包,在项目pom.xml中引入:


spring+springmvc+Interceptor+jwt+redis实现sso单点登录

2. 拦截器配置:


spring+springmvc+Interceptor+jwt+redis实现sso单点登录

我这里简单配置了要拦截的url和过滤的url(这个根据自己项目来定)

3. 编写jwt的加密或者解密工具类:


spring+springmvc+Interceptor+jwt+redis实现sso单点登录

这个加密工具类是我从网上找的,如果各位要修改,可以按照自己业务修改即可。

4. 创建Login.java对象,用来进行jwt的加密或者解密:


spring+springmvc+Interceptor+jwt+redis实现sso单点登录
spring+springmvc+Interceptor+jwt+redis实现sso单点登录

5. 定义RedisLogin对象,用来通过uid往redis进行user对象存储:


spring+springmvc+Interceptor+jwt+redis实现sso单点登录
spring+springmvc+Interceptor+jwt+redis实现sso单点登录

6. 编写LoginInterceptor.java拦截器


spring+springmvc+Interceptor+jwt+redis实现sso单点登录
spring+springmvc+Interceptor+jwt+redis实现sso单点登录

7. 定义异常的LoginResponseCode


spring+springmvc+Interceptor+jwt+redis实现sso单点登录

8. 编写统一sso单点登录接口:


spring+springmvc+Interceptor+jwt+redis实现sso单点登录

9. 测试sso单点登录:


spring+springmvc+Interceptor+jwt+redis实现sso单点登录

返回结果集:


spring+springmvc+Interceptor+jwt+redis实现sso单点登录

愿意了解框架技术或者源码的朋友直接求求交流分享技术:2042849237

分布式的一些解决方案,有愿意了解的朋友可以找我们团队探讨

更多详细源码参考来源

标签:spring,springmvc,Spring MVC,web开发,java分布式架构,shiro,mybatis,kafka,J2ee分布式架构

分享到:
更多

我来回答

所有回答
举报 | (0) | (0) 2017-11-08
sdfsdfsdfsdf
  • 回答: dsfdsf
举报 | (0) | (0) 2017-12-22
嗷嗷嗷
举报 | (0) | (0) 2018-01-09
??
举报 | (0) | (0) 2018-03-01
赚积分
#5 浅笑a
举报 | (0) | (0) 2018-03-14
积分
举报 | (0) | (0) 2018-04-11
积分 

相关提问