当我们使用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