我今天刚起床,电话来了:= _ =
好人,听到它的秃头,它是秃顶的。
我想了,好友似乎什么都没做?
等一下,想想,看来它昨天已经修复了,是否应该引起这一点?
然后迅速返回公司并检查了服务器。好人真的是这个。Seata挂断了。分布式交易不好,从而保存形式!
这确实是伙伴的问题。我没有注意到这个问题!交叉剖面
您不会被扣除吗?
好的,今天让我们谈谈,NACOS开放认证并修改密码。Seata分布式交易,失败,讨论和研究!
始终向无法解决问题的问题报告!
此问题的版本将在下面。
早期,NACOS没有授权访问权限,并打开了NACOS认证访问和修改密码的漏洞。
vi Nacos/conf/confapper.properties
修改密码:
配置文件的密码已经修改,但是SEATA无法启动!
已集成为配置中心和注册中心的NACO,如何集成,不会在这里谈论它,您可以在此处引用它
然后,我在互联网上找到了一些答案。就是这样。密码中有特殊字符,这是正义的!
好吧,让我们更改NACOS的密码,更改它,删除特殊符号并测试:
好人,这家初创公司成功了,这确实是这个问题!
看到这一点,我们不禁要考虑一下,您在哪里建立了密码的公义?
有好奇的同学,让我们继续看,从源代码中进行分析,并找到公义的代码。
打开!交叉剖面
SEATA源代码构造。您可以在这里引用:单击查看,这里将不再有说明!
现在,让我们逐步执行调试调试:
开始错误后,NacosconFiguration造成了错误。然后,我们进入NacosconFiguration类,以查看报告错误的位置。
该故障是通过Nacosconfiguration输出的。我们可以通过输出日志定位特定位置,但是这里没有,因此我们将打破所有记录器。
可以看出,这是通过nacosconfiguration.getlatesstconfig方法打印的错误日志信息。
说明configService.getConfig方法被放弃,然后我们输入configservice.getConfig方法查看。
以上是一个步骤 - 步骤调试。
然后,我们在执行方法中有一个断点。
显然,原因即将找到。已经看到密码,这确实是正义的。
接下来,找到逐步查找堆栈的方法。
显然,这是这里的问题:SecurityProxy类,登录方法,
注意:NACOS-CLIENT的版本为1.3.3
找到原因!交叉剖面
好的,基本上,我们已经知道密码转移到公义的原因,我们也可以知道在哪里义。
看到这一点,我们有点奇怪。SEATA版本为1.4.1。为什么使用1.3.3版NACOS-CLIENT?
这里有油腻吗?
有了这个问题,让我们看一下版本的版本。
看到这一点,NACOS-CLIENT的1.4.1版本不再具有密码上的enricode。
对你有好处!交叉剖面
然后,在我心中思考这是官方错误?SEATA 1.4.1源代码,为什么要使用1.3.3版NACOS-CLIENT来构建它?
它确实是1.3.3版的NACOS-CLIENT
仍然不要死,所以看看Seata版本1.2?:POM依赖性
1.4.2 SEATA的版本,也是版本1.3.3的NACOS-CLIENT
官方,真的!
最终的解决方案:
1.升级SEATA版本,至少超过1.4.2。
2.修改NACOS密码,不显示特殊字符。
3.对于1.4.1版的SEATA源代码,请修改1.4.1的NACOS-CLIENT版本以重新构建SEATA服务。(我不知道将向那些告别的人提供什么样的坑测试!)
最后,我不想在这里扔,选择第二种方法,快速!
假装完成!交叉剖面
好吧,NACOS密码已修改,导致SEATA的故障问题(源代码分析),就是IT!
今天在这里,很滑!交点简报^_^
我认为有收益,帮助!交叉触摸
原始:https://juejin.cn/post/7102413947596177416