当前位置: 首页 > 网络应用技术

NACOS密码修改导致SEATA的故障问题开始(源代码分析)

时间:2023-03-09 00:18:24 网络应用技术

  我今天刚起床,电话来了:= _ =

  好人,听到它的秃头,它是秃顶的。

  我想了,好友似乎什么都没做?

  等一下,想想,看来它昨天已经修复了,是否应该引起这一点?

  然后迅速返回公司并检查了服务器。好人真的是这个。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

猜你喜欢