使用p3p解決iframe中跨域傳遞cookie
使用p3p解決iframe中跨域傳遞cookie的問題
昨天在做一個集成的時候 發現一個問題 : A.com的 iframe中嵌入 B.com的問題,恰好 需要在iframe中登陸到 B.com,結果發現成功登陸後並未轉跳到B.com中的預期頁麵,後來發現是cookie丟失了,瀏覽器阻止了B.com的cookie
java中的解決方法如下 :寫一個攔截器,然後配置你的action上就 ok 了 public class P3PInterceptor implements Interceptor {
public void destroy() { // TODO Auto-generated method stub
}
public void init() { // TODO Auto-generated method stub
}
public String intercept(ActionInvocation invocation) throws Exception { HttpServletResponse response = ServletActionContext.getResponse();
response.setHeader("P3P","CP=/"NON DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa HISa TELa OTPa OUR UNRa IND UNI COM NAV INT DEM CNT PRE LOC/""); return invocation.invoke(); }
}
本質上就是改變response的header(加入了p3p這個網站隱私策略的信息,具體的p3p信息請參考google,本文不再贅述)所以其他的語言平台也可以如法炮製不需在每一個action都做這種配置,隻需配置一個,瀏覽器就知道了,當訪問其他action的時候,瀏覽器會自動傳送該域的cookie
jsp中設置http的P3P頭實現跨域設置cookie
response.setHeader("P3P","CP=/"CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR/"");
https://www.360doc.com/content/09/0807/16/203871_4731702.shtml
最後更新:2017-04-02 06:51:22