cas logout是一个非常费解的问题,
广州ug版,网友不停问为什么cas logout后,仍然能够访问应用?
假设有webapp1, webapp2, cas server,webapp1, webapp2均受cas server保护
首先,我在这里简单解释一下:
第1种不能logout的情况:
1)登录了webapp1,redirect到caserver
casserver认证后,再redirect到webapp1,ok!
2)http方式 lougout casserver1,即http://yale_casserver:8080/cas/lougout
显示logout成功
3)访问webapp2,还能访问!
这是非常正常的一种情况,因为你不通过https来注销,casserver怎么"杀"掉
它通过https发给你的tgc cookie?
第2种不能logout的情况:
1)登录了webapp1,redirect到caserver
casserver认证后,再redirect到webapp1,ok!
2)https方式 lougout casserver1,即https://yale_casserver:8443/cas/lougout
显示logout成功
3)访问webapp1,还能访问!访问webapp2,不能访问,重定向到casserver要求登录!
这也是非常正常的一种情况,因为你已经能够访问,你继续可以继续访问,
caslogout不能阻止你访问webapp1,它只能阻止你访问webapp2,因为你已经
被允许访问webapp1,而webapp2则还没有,如果你在(1)的时候,顺带也访问
webapp2,那么你的注销将毫无作用了,cas无法阻止你访问这两个webapp,
因为你有service ticket。
如果你对此费解,那时因为你已为logout就是退出系统,那我只能表示遗憾,
因为cas logout的作用不是这样,它的作用是阻止你继续通过tgc(它简单地
清楚了ie的tgc cookie)来获取st,阻止你获取通向其他web应用的ticket。
所以,用完webapp1的时候,注销,然后再关闭掉ie就彻底logout了。