单点登录
之前说了单点登录系统的原理,这篇就来点硬货,说下单点登录的一个系统是如何搭建的。
架构分析
表现层:提供手机客户端,或其他系统的调用
表现层的存在意义就是,提供给所有非本系统的其他系统进行登录。具体实现的思路就是,编写一个登录的接口(本系统使用RESTful风格的),让需要该服务的其他系统通过接口提交数据,并获得相应的返回。
服务层:系统内部的调用
这个比较简单了,内部的所有登录,查询的操作都是通过服务层去实现的。
我们本次的搭建使用maven实现的,如果使用其他技术,请自行从网上查找其他资料
服务层
首先是我们的服务层,我们的服务层中总共只有三个子项目:分别是聚合工程的父工程(taotao-sso)还有就是两个子工程,负责提供接口和依赖的接口工程(taotao-sso-interface)和负责真正的业务处理的业务处理工程(taotao-sso-service)。跟其他聚合工程的的服务层相比,它的里面是没有实体层(pojo)和持久层(mapper)的。因为项目中一般所有的数据库表都是有一个专门的团队去维护的(数据库开发工程师),目的是保证数据的安全性、读取速度等。所以对应的实体层(pojo)和持久层(mapper)的编写一般也都是由他们来进行完成的。
而我们的单点登录系统肯定是要使用实体和持久层的,这个时候,我们需要依赖后台的pojo和mapper就可以了。
表现层
表现层主要提供接口给别的系统用,就是一个普通的表现层web工程。
搭建
搭建taotao-sso
创建工程
创建聚合工程父工程
创建聚合工程子工程-interface
创建聚合工程子工程-service
加入依赖(就是pom.xml文件中的代码)
这里依赖的那个parent的包下的xml文件也一并提供下,建工程的过程就不写了,参见taotao-sso
taotao-sso
taotao-sso-interface
taotao-sso-service
加入配置文件
在taotao-service工程中,创建如图示目录和文件:
其中的各个文件的配置:
SqlMapConfig.xml
jdbc.properties
jedis.properties
web.xml
applicationContext-dao.xml
applicationContext-jedis.xml
对了,还需要引入之前的redis中写的工具类的包。其实大家可以试着自己写一下,很简单的不过我还是提供下代码:建立的包结构如下:
JedisClusterUtiles.java
JedisPoolUtils.java
RedisUtils.java
applicationContext-serivce.xml
applicationContext-trans.xml
搭建taotao-sso-web
创建工程
加入依赖
pom.xml
加入配置文件
web.xml
springmvc.xml