记一次nacos 1.2增加登陆权限验证后,客户端连接报403的问题追踪

公司最近准备使用nacos作为注册中心,然后我去预研了一番,根据官网提供的一个样例做了一次权限登陆配置的demo(权限登陆样例)。发现客户端死活连接不上,总是403的错误,根据惯例来讲,这是没有授权引起的,然后我去github上找了下,果然有人提了这个issue
记一次nacos 1.2增加登陆权限验证后,客户端连接报403的问题追踪
好,问题有了,那么接下来追踪产生的原因。

官网的权限登陆样例中,加入了用户名和密码:
记一次nacos 1.2增加登陆权限验证后,客户端连接报403的问题追踪
然而我搜索了一番,发现我引入的包中,PropertyKeyConst中并没有USERNAME和PASSWORD,我开始怀疑是不是我引入的spring-cloud-alibaba版本低了,确认了一番,确实已经是最新版了(2.2.0.RELEASE)。那么继续查,这个PropertyKeyConst属于nacos-api的包中(我发现我用的是1.1.4),然而nacos server是用的1.2,会不会有更新的版本?

maven仓库上找了一手,发现确实有更新的1.2版本
记一次nacos 1.2增加登陆权限验证后,客户端连接报403的问题追踪
我就纳闷了,为什么cloud-starter里面引的包不是最新版。。。
除了替换nacos-api,另外还有个nacos-client也要替换成1.2。
配置连接用户和密码:
记一次nacos 1.2增加登陆权限验证后,客户端连接报403的问题追踪
本来按照常规操作来说,到这里已经可以宣告成功了,奈何nacos-client有bug。
最后通过debug会发现,ServerHttpAgent这个类中,有个方法
记一次nacos 1.2增加登陆权限验证后,客户端连接报403的问题追踪
由于这里拼接了“/”,又nacos server端使用了spring security,在新版的spring security中,对url进行了规则强校验,不允许类似“http://127.0.0.1//xxx”这种"//"出现,导致出现获取配置出现500的错误。
凉了,只有改源码,但是不稳当,最后我的解决方案是把
记一次nacos 1.2增加登陆权限验证后,客户端连接报403的问题追踪
这个配置如果为true,就会在client注册或者获取配置的要求权限,改成false就不需要了。只是在nacos server配置权限登陆登陆。