jeecgboot / JeecgBoot

🔥「企业级低代码平台」前后端分离架构SpringBoot 2.x/3.x,SpringCloud,Ant Design&Vue3,Mybatis,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的开发模式,引入AI模型能力 OnlineCoding->代码生成->手工MERGE,帮助Java项目解决70%重复工作,让开发更关注业务,既能快速提高效率,帮助公司节省成本,同时又不失灵活性。
http://www.jeecg.com
Apache License 2.0
40.65k stars 14.84k forks source link

online表单-关联记录控件:sign签名校验失败 #6550

Closed zander92 closed 1 year ago

zander92 commented 1 year ago
版本号:

后端版本:3.5.0

问题描述:

通过online表单,页面属性配置字段控件类型为:关联记录,选择关联表,提示“Sign签名校验失败!”

截图&代码:

image

友情提示(为了提高issue处理效率):

zhangdaiscott commented 1 year ago

看看你配置有什么特别的吗

zander92 commented 1 year ago

配置是指哪里的配置?我想实现通过选择用户后,关联带出手机号

zhangdaiscott commented 1 year ago

ty

healkerzk commented 1 year ago

image

image

image

列表界面有表关联数据字典字段时,报“Sign签名校验失败!”

healkerzk commented 1 year ago

image

zhangdaiscott commented 1 year ago

你改了后台的校验秘钥了吗

tygithub1 commented 1 year ago

测试无误。 选择关联表 是下拉搜索组件,他的数据获取需要对参数签名,不通过说明是前后端签名结果不一致。跟一下代码吧

后端: org.jeecg.config.sign.interceptor.SignAuthInterceptor image

前端: src/utils/http/axios/index.ts image

AAAGreenHand commented 1 year ago

online表单,选择关联记录还是会报错“Sign 签名校验失败!”

zhangdaiscott commented 1 year ago

你的代码是最新的吗

AAAGreenHand commented 1 year ago

你的代码是最新的吗

后台用的是master分支的代码; 前端用的是vue3版本的master分支的代码。

zhangdaiscott commented 1 year ago

你录个视频吧

AAAGreenHand commented 1 year ago

你录个视频吧

是在微服务的模式下会出现“签名检验失败”这个报错的,大概的原因是这样的 gateway接受到url参数,url参数带 “%” ,转发到微服务之后,url上面的 “%” 被转义成 “%25” 了;所以在校验签名的方法里面后端生成的签名是不一致的。 这是gateway拿到的URL:/dict/loadDict/onl_cgform_head%20where%20copy_type%20=%200,table_txt,table_name 27a761dbb1380e7f13a02ce54d370a2


这是微服务下,HttpUtils的getAllParams方法下拿到的URL:onl_cgform_head%2520where%2520copy_type%2520=%25200,table_txt,table_name decode之后的URL:onl_cgform_head%20where%20copy_type%20=%200,table_txt,table_name 9a32f422f840dc98fb927ee5eab3ed5


我现在的解决方法是 1.HttpUtils的getAllParams方法中,在URLDecoder之前将 “%25” 替换成 “%” 2.在src/main/java/org/jeecg/modules/system/service/impl/SysDictServiceImpl.java的loadDict方法中,将dictCode做一次URLDecoder.decode的操作

32f2b94920db1d08704d80bb3193154

4cd16502fcd48609d309ba7a7d99567

zhangdaiscott commented 1 year ago

单体没问题?

AAAGreenHand commented 1 year ago

单体没问题?

单体的没有问题,springcloud的有问题

tygithub1 commented 1 year ago

已修改