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

在Chrome高版本中,由于默认的Cookie SameSite策略,导致Iframe嵌入Fine BI时出现登录界面,无法正常写入Cookie。通过创建帆软插件并设置 EmbedRequestFilterProvider,手动设置Cookie的SameSite为none,可以解决此问题。实测在Windows系统上的5.1.16版本Fine BI和Chrome 94.0.4606.61上有效。若在Linux系统,需将BI系统转换为HTTPS。
摘要由CSDN通过智能技术生成

当我们使用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-Origi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帆软爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值