Cas单点登录+oauth2第三方授权总结
需求:由于系统需要同时支持第三方登录和单点登录,而旧代码的业务逻辑繁琐,难以修改,单点登录有问题。所以对cas和oauth2模块进行了重构。
在本次开发过程中,cas工程不依赖于ouath2,先从cas构建开始总结。
Cas工程的构建依赖于cas-overlay-template进行。该工程中集成了cas-server,使用该覆盖模板,我们可以在不修改cas框架源码的情况下自定义业务逻辑。Cas工程的开发主要还是基于对源码的继承与重写。
下载好cas-overlay-templat后,我们可以使用maven自己将其打包,也可以将其导入idea打包 编译后以后,项目文件会出现overlay。
在其中将resources文件复制出来,新建src/main/java,放入其中,然后修改。
重要修改点
- application.properties文件
- service下的客户端配置文件,配置了客户端的相关信息
- spring.factories 把你自定义的修改覆盖掉原来的类的必须操作
根据需求,将cas中对应的类继承重写。
下面是oauth2
导入框架之后,自定义相关的内容
其实oauth2主要分3个模块
- 认证授权
- 换取token
- Token换取资源
使用用户名将code token 和用户关联
在oauth2工程中要引入cas的客户端依赖,将oauth2作为cas客户端。
使用redis对关键的资源做状态保存。