CAS的logout问题

今天使用CAS部署实现了单点登录,扩展了界面,也扩展了登陆认证,但是在logout的时候发现一些问题:

 

前提:两个web应用web1和web2,一个CAS服务端casserver,本机域名:www.mycas.com

 

问题一:

1.登录了web1,redirect到casserver,casserver认证后,再redirect到web1;

2.http方式 lougout casserver,即http://www.mycas.com:8080/cas/lougout,显示logout成功;

3.访问web1,web2,还是不用验证就能访问,即相当于注销没用;

4.原因是你不通过https来注销,casserver无法"杀"掉它通过https发给你的TGC Cookie,所以你可以关闭浏览器注销.

  

问题二:

1.登录了web1,redirect到casserver,casserver认证后,再redirect到web1;

2.https方式 lougout casserver1,即https://www.mycas.com:8443/cas/lougout,显示logout成功

3.访问web1不用验证就能访问,但是访问web2的时候就无法访问了,重定向到casserver的登录界面;

4原因是你已经能够访问的东西可以继续访问,CASLogout不能阻止你访问web1,它只能阻止你访问web2,因为你已经被允许访问web1,而web2则还没有,如果你在(第一种情况)的时候,顺带也访问web2,那么你的注销将毫无作用了,CAS无法阻止你访问这两个web,因为你有Service Ticket。

 

如果你认为Logout就是退出系统,那时不正确的,因为CAS Logout的作用不是这样,它的作用是阻止你继续通过TGC(它简单地清除了IE的TGC Cookie)来获取ST,阻止你获取通向其他web应用的Ticket。所以,用完web1的时候,注销,然后再关闭掉IE就彻底Logout了。

 

另外也可以增加JS脚本,在logout时将对应的jsessionid清空;另外注销地址要考虑登录时是否有使用HTTPS,登录时使用了HTTPS,则注销时一样要使用HTTPS

 

(By:Gxmis-alextang)

 

你可能感兴趣的:(应用服务器,Web,浏览器,IE,脚本)