php cas没有检测出退出,CAS客户端单点退出实现-(五)

步骤

一、搭建CAS服务器  –>

修改application.properties加入如下配置,该配置的作用是允许退出登录后重定向到其他页面

cas.logout.followServiceRedirects=true

ac2975565b59cedd95474f24b259703f.png

二、搭建两个CAS客户端

这里就直接使用前两节搭建的cas-clientA和cas-clientB作为客户端,可以到GIT仓库 https://gitee.com/oumuv/cas-Demo 下载

三、controller加入退出登录业务

cas-clientA的退出业务:

/**

* 退出

* @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的退出业务:

@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

74549100af54186dc1a29ebf545c6f3d.png

测试:

1、在clientA登录后clientB不需要再次登录,单点登录功能正常

2、在clientA点击logout(http://cas.client1.com:9001/logout)退出登录,clientB同时也退出登录,单点退出功能正常

9a531d241f00071bafb9017ccb4be955.png

到此功能完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值