CAS Logout是一個(gè)非常費(fèi)解的問(wèn)題,
廣州UG版,網(wǎng)友不停問(wèn)為什么CAS Logout后,仍然能夠訪問(wèn)應(yīng)用?
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=29304&threadID=37715&messageID=221727#221727假設(shè)有webapp1, webapp2, cas server,webapp1, webapp2均受cas server保護(hù)
首先,我在這里簡(jiǎn)單解釋一下:
第1種不能logout的情況:
1)登錄了WebApp1,redirect到caserver
casserver認(rèn)證后,再redirect到webapp1,ok!
2)http方式?lougout?casserver1,即http://yale_casserver:8080/cas/lougout
顯示logout成功
3)訪問(wèn)webapp2,還能訪問(wèn)!
這是非常正常的一種情況,因?yàn)槟悴煌ㄟ^(guò)https來(lái)注銷,casserver怎么"殺"掉
它通過(guò)https發(fā)給你的TGC Cookie?
第2種不能logout的情況:
1)登錄了WebApp1,redirect到caserver
casserver認(rèn)證后,再redirect到webapp1,ok!
2)https方式?lougout?casserver1,即https://yale_casserver:8443/cas/lougout
顯示logout成功
3)訪問(wèn)webapp1,還能訪問(wèn)!訪問(wèn)webapp2,不能訪問(wèn),重定向到casserver要求登錄!
這也是非常正常的一種情況,因?yàn)槟阋呀?jīng)能夠訪問(wèn),你繼續(xù)可以繼續(xù)訪問(wèn),
CASLogout不能阻止你訪問(wèn)webapp1,它只能阻止你訪問(wèn)webapp2,因?yàn)槟阋呀?jīng)
被允許訪問(wèn)webapp1,而webapp2則還沒有,如果你在(1)的時(shí)候,順帶也訪問(wèn)
webapp2,那么你的注銷將毫無(wú)作用了,CAS無(wú)法阻止你訪問(wèn)這兩個(gè)webapp,
因?yàn)槟阌蠸ervice Ticket。
如果你對(duì)此費(fèi)解,那時(shí)因?yàn)槟阋褳長(zhǎng)ogout就是退出系統(tǒng),那我只能表示遺憾,
因?yàn)镃AS Logout的作用不是這樣,它的作用是阻止你繼續(xù)通過(guò)TGC(它簡(jiǎn)單地
清楚了IE的TGC Cookie)來(lái)獲取ST,阻止你獲取通向其他web應(yīng)用的Ticket。
所以,用完webapp1的時(shí)候,注銷,然后再關(guān)閉掉IE就徹底Logout了。