其他分享
首页 > 其他分享> > 解决Iframe嵌入帆软BI系统后,Chrome升级后跨域出现登录界面,Cookie写入不成功。解决办法

解决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