解决Iframe嵌入帆软BI系统后,Chrome升级后跨域出现登录界面,Cookie写入不成功。解决办法
作者:互联网
当我们使用Iframe嵌入fine BI的页面时,由于google chrome的高版本为了防止CSRF 攻击,默认将Cookie的SameSite设置为lax了,导致 cookie跨域的时候就写不成功了,所以导致嵌入的iframe出现登录界面。这是咋们可以自己手动来写这个cookie,并且将SameSite的值设置为none。
我们只需要在嵌入的url上加上fine_auth_token,通过拦截器获取到fine_auth_token,然后强行写入,我们写一个帆软插件,实现一个EmbedRequestFilterProvider扩展:
@Override
public void filter(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException, ServletException {
// LogUtils.info("我开始filter---------------------------------------------------------");
String fine_auth_token = httpServletRequest.getParameter("fine_auth_token");
//httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");
if(fine_auth_token != null && fine_auth_token != ""){
LOGGER.debug("ChromeFilter fine_auth_token:"+fine_auth_token);
标签:httpServletRequest,嵌入,跨域,Chrome,BI,auth,token,fine 来源: https://blog.csdn.net/sixingbugai/article/details/122147746