简介
公司有一个复杂项目,需要建设多个应用系统。例如:用户管理系统、门户系统、客户管理系统、采购系统、销售管理系统、库存系统等。所有系统的用户均需要通过用户管理系统进行统一授权,每个角色通过门户系统登录一次就可以跳转到所有授权的子系统。这种场景我们就需要建设一套单点登录的模式。常见的有CAS、OAuth2、LDAP等。初步调研后发现每种类型都有很多坑,而且最主要的是开发工作量大。有没有一种简单的方式实现呢?有的,那就是SpringSession。本文我先介绍如何搭建,再介绍选型原理。
快速入门
快速入门前,至少需要掌握IDEA开发工具的使用、Redis的启动、SpringBoot、SpringMVC、SpringSecurity的开发运行原理。实在查询不到的朋友可以留言,后续为大家补充。
快速入门的目标是启动两个独立的WEB应用,访问A应用登录后,访问B应用也可以自动登录,并且二者sessionID是一致的。
步骤如下:
1、启动Redis 2、构建demo工程 3、修改配置 4、运行测试
启动Redis
下载redis地址为:https://github.com/MSOpenTech/redis/releases
推荐下载win64位版本的
启动redis,该版本是绿色版,需要手动启动。可以将压缩包解压至D:\Program Files\Redis,如图:
使用如下命令启动:
d:
cd D:\Program Files\Redis
redis-server.exe redis.windows.conf
启动成功后,如图所示:
构建demo工程
开启IDEA,默认认为你的IDEA已经配置好MAVEN。选择Spring Initializr,需要JDK1.8环境。无需修改配置点击下一步即可。
配置工程的一些设置,可以根据自己需要修改,为方便测试Packaging需要为Jar,否则你需要单独建立两个独立容器如Tomcat或jetty。修改完毕后点击下一步。