問題:在ie瀏覽器下,域名A通過iframe的方式把登錄信息post到域名為B的cas服務器上,經過debug發現A獲取loginTicket時的sessionId和post過去時的sessionid不一致。只有ie瀏覽器有這個問題,火狐谷歌瀏覽器正常。

原因:查資料知道IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)協議默認阻止第三方無隱私安全聲明的cookie,火狐和谷歌目前還不支持P3P安全特性,所以它們不存在此問題了。

解決方法:在第一次獲取loginTicket時在response中設置p3p聲明,如下:

response.setHeader("P3P", "CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR");