# 金山文档中台非/open开头地址适配
# 背景
OA对接金山文档中台的标准地址为http://ip:port/open, 当金山文档中台的对接地址为http://ip:port/xxx/open 这种格式的时候,预览文件的时候将会报“400 Bad Request”,通过查看日志会发现报如下错误:
获取weboffice生成的token出错:url=http://ip:port/wps/open/auth/v1/app/inscope/token?app_id=ROVYZTLZLHQQLDXU&scope=file_format_control,file_edit;{"result":40101,"msg":"wps2 signature invalid: extract appId err"}
备注:根据异常信息分析大致可以确定是签名的问题
# 问题原因
OA在访问金山文档中台接口的时候对请求的接口做了拦截,此拦截会对请求的地址做wps-3签名,签名的规则是将appKey + contentMd5 + url + contentType + date拼接的字符串做SHA-1加密,其中url中/open之前的内容不会参与加密,所以需要将金山文档中台地址中/open之前的地址过滤掉(包含/open)
# 解决方案
工程:apps-office-plugins
修改com.seeyon.apps.weboffice.config.WPS3AuthenticationInterceptor.java类的intercept()方法,如下图所示:
编撰人:ranjunfeng、ranjf
