环境要求
步骤
一、搭建CAS服务器 –> CAS(一)搭建CAS - server服务器
修改application.properties加入如下配置,该配置的作用是允许退出登录后重定向到其他页面
cas.logout.followServiceRedirects=true
二、搭建两个CAS客户端
这里就直接使用前两节搭建的cas-clientA和cas-clientB作为客户端,可以到GIT仓库 https://gitee.com/oumuv/cas-Demo 下载
cas-clientA搭建步骤–>CAS(三)基于SpringMVC搭建CAS-client,SpringMVC搭建CAS客户端
cas-clientB搭建步骤–>CAS(四)基于Springboot搭建CAS-client,Springboot搭建CAS客户端
三、controller加入退出登录业务
cas-clientA的退出业务:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
* 退出
* @param session
* @return
*/
@RequestMapping("logout")
public String logout(HttpSession session) {
session.invalidate();
//使用cas退出成功后,跳转到http://cas.client1.com:9001/logout/success
return "redirect:http://cas.server.com:8443/cas/logout?service=http://cas.client1.com:9001/logout/success";
}
/**
* 退出成功页
* @param session
* @return
*/
@RequestMapping("logout/success")
public String logoutsuccess(HttpSession session) {
return "logoutsuccess";
}
cas-clientB的退出业务:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@Value("${casClientLogoutUrl}")
private String clientLogoutUrl;//http://cas.server.com:8443/cas/logout?service=http://cas.client1.com:9002/logout/success
@RequestMapping("logout")
public String logout(HttpSession session) {
session.invalidate();//销毁session
//使用cas退出成功后,跳转到http://cas.client1.com:9002/logout/success
return "redirect:" + clientLogoutUrl;
}
@RequestMapping("logout/success")
public String logoutsuccess(HttpSession session) {
return "logoutsuccess";
}
四、启动、测试
依次启动cas-server、cas-clientA、cas-clientB
打开两个浏览器窗口分别访问cas-clientA(http://cas.client1.com:9001/index)、cas-clientB(http://cas.client1.com:9002/index)的主页
测试:
1、在clientA登录后clientB不需要再次登录,单点登录功能正常
2、在clientA点击logout(http://cas.client1.com:9001/logout)退出登录,clientB同时也退出登录,单点退出功能正常
到此功能完成
代码托管在https://gitee.com/oumuv/cas-Demo
上一篇:CAS(四)基于Springboot搭建CAS-client,Springboot搭建CAS客户端