整合PageOffice无法保存文件

Blade 已结 1 884

一、该问题的重现步骤是什么?

1、 单独运行PageOffice提供的demo是可以正常保存文件,整合到biz项目中就无法保存,经过咨询PageOffice的技术客服反馈是框架做了相关拦截。想请帮忙看看,是那个拦截导致,


    相关运行demo和运行步骤已上传,参见相关运行文件.zip 

相关运行文件.zip

2. 

3.


二、你期待的结果是什么?实际看到的又是什么?

正常保存

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

blade2.8版本

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  •  admin
    admin (最佳回答者)
    2021-03-26 16:48

    东西较多,我还要用windows机子来测试,只能等空了帮你们排查下。

    如果是我的话,会这么排查:
    一、关闭Gateway的AuthFilter

    二、关闭Xss配置
    三、关闭Secure配置

    四、去掉bladex其他的依赖,只保留blade-core-launch保证可以正常启动


    bladex一共也就这三方面有拦截器,把他们全都关了不生效,再去测试这个demo,就可以排除拦截器的问题。


    =================

    补充,我本地已经保存成功,两步就排查结束

    第一步:根据报错(java.lang.Exception: You can not directly view this page because this page only accepts the requests from PageOfficeCtrl),提示request不能转换为pageofficeRequest,第一步基本判断为request导致的问题

    第二步:框架内针对request有封装的只有一处,是对request的inputStream做了缓存,也许是这一块导致的错误


    具体解决以及实验方法:

    1、注释掉相关方法,把针对request的封装暂时去掉

    image.png

    2、本地mvn clean install,然后执行工程,发现保存成功


    如何解决:

    可以在doFilter的方法再加一层判断,根据自己的配置,如果配置了 blade.request.enabled=false,则不对inputStream进行缓存,直接返回chain.dofilter(request, response)。

    你们可以先改tool然后本地install等下次更新


    具体commit参考:https://center.bladex.cn/blade/BladeX-Tool/commit/310713be08b29fc60760a23991fcb586de43aca3

    =================

    作者追问:2021-03-26 16:48

    已关闭Gateway的AuthFilter、Xss配置、Secure配置都不行

    在去掉bladex其他的依赖,只保留blade-core-launch的情况下,导致无法启动。

    具体报错信息为:image.png


    pom.xml 配置为:

    image.png


    启动文件为:

    image.png



    直接使用pageoffice的demo或者是自己新建一个项目也是可以正常保存。只要在 bladex-biz下创建使用bladex框架就不行




    作者追问:2021-03-26 16:48

    关闭Gateway的AuthFilter、Xss配置、Secure配置,我是在nacos里修改,配置如下:

    image.png


    并且还修改了tool工程中的配置,也修改成 false
    SecureRegistry.java、XssProperties.java、BladeSecureProperties.java都做了修改,



    经过测试,项目直接依赖blade-core-launch后,正常启动,正序正常运行,也可以保存文件。相关pom依赖如下:

    image.png

    image.png

    这样配置后可以正常保存。


    作者追问:2021-03-26 16:48

    一、关闭Gateway的AuthFilter

    二、关闭Xss配置
    三、关闭Secure配置

    四、去掉bladex其他的依赖,只保留blade-core-launch保证可以正常启动

    只有第四点可以,是不是因为有啥配置导致的,还请麻烦帮忙看看

    0 讨论(1)
提交回复