CAS(五)CAS客户端单点退出实现

单点退出实现

Posted by Oumuv on November 24, 2018

环境要求

JDK CAS tomcat

步骤

一、搭建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客户端

希望可以帮助到有需要的人