Nacos旧版本使用Auth密码登录问题解决

前情提要: 我们项目连续维护开发已有几年(我中途接手), 使用的springcloud 1.5版本. 全面升级到2.X可能面临大量修改以及大量测试. 所以使用以下方法

使用的spring-cloud-starter-alibaba-nacos-config版本为1.5.1.RELEASE, nacos-client使用的1.2.0但是最近甲方安全扫描要求我们nacos加上密码验证获取配置, 我尝试升级版本, 结果发现升级后各种问题要么配置不支持, 要么获取不到配置.

解决思路:

1. 尝试使用类似AOP的方式在获取配置的请求方法被调用时截断方法修改请求参数, 结果失败, nacos是在项目启动时运行获取配置, AOP所需环境根本没启动, 或者我去JVM里查询所有实现对象进行修改, 这样对于环境一致性要求高并且不实时, 放弃.

2. 尝试反射, 但是发现我只能拿到反射自己实现的类, 不能拿到nacos自己实现的类. 失败.

3. 尝试修改nacos-client 1.2.0的jar包, 查看源码发现获取本地nacos地址配置的部分在spring-cloud-starter-alibaba-nacos-config中, 但是请求配置在nacos-client中实现的, 于是我把maven里的source的jar包解压用idea创建项目, maven对应nacos-client的目录里的pom也放入项目, 会有不少报错, 将报错修改至不报错(不用管逻辑, 除非是你要改的目标文件有报错), 把ClientWorker里的参数里项增加用户名密码(我这写死了, 用于实现思路, 如果想读配置, 请修改更上层位置传入), javac命令生成class文件, 把class文件拖入nacos-client的jar文件(解压软件直接塞进去),

 再次运行, 问题解决, 用户名密码已生效.

我这里使用的hack的方式并不推荐大家使用, 如果有条件还是升级spring版本解决问题.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值