nacos-group / r-nacos

Nacos server re-implemented in Rust.
https://r-nacos.github.io/docs/
Apache License 2.0
807 stars 84 forks source link

似乎登陆接口也被登录态校验拦截了 #128

Closed yuzheng14 closed 3 weeks ago

yuzheng14 commented 3 weeks ago

https://github.com/nacos-group/r-nacos/blob/bf56f3bb284b5b9eb46f25ae2054738d82f7408f/src/console/middle/login_middle.rs#L172-L177

调用 /nacos/api/v2/auth/login 的时候返回 {"data":null,"success":false,"code":"NO_LOGIN","msg":null} 看样是自这里的条件判断没有排除掉这个登陆接口导致的

heqingpan commented 3 weeks ago

/nacos/api/v2/auth/login这个接口是v2版本接口,目前暂时不支持。

之前的sdk只使用v1版本接口,如果sdk开始使用说明api已稳定,到时再兼容v2版本接口。

这个是你手动调用的,还是通过sdk调用的?

heqingpan commented 3 weeks ago

v1版本接口可以参考文档: https://nacos.io/docs/v1/open-api/

heqingpan commented 3 weeks ago

另外你上面的代码是控制台接口拦截,r-nacos分控制台端口与open api端口,调用open api 接口要用open api 端口(默认为8848)。

yuzheng14 commented 3 weeks ago

这个是你手动调用的,还是通过sdk调用的?

手动调用的。

试了一下 8848 v1 确实能调用,但是获取配置就不支持命名空间了。

heqingpan commented 3 weeks ago

这个是你手动调用的,还是通过sdk调用的?

手动调用的。

试了一下 8848 v1 确实能调用,但是获取配置就不支持命名空间了。

"获取配置就不支持命名空间" 这是指查询配置时不支持按命名空间查,还是指不支持查询命名空间列表信息?

  1. 查询配置时是支持按命名空间查的,如果有疑问你可以把请求请求放上来确认。
  2. 关闭命名空间相关接口之前当做非sdk接口不兼容,后面发现很多用户需要用这块接口做运维工具,所以计划支持。(可参考 #127 ) 目前这块已开发完成,大概明天晚上会发布一个新版本支持。
yuzheng14 commented 3 weeks ago

"获取配置就不支持命名空间" 这是指查询配置时不支持按命名空间查,还是指不支持查询命名空间列表信息?

/nacos/v1/cs/configs 接口查询配置。nacos v1 的接口文档上都没提有 namespaceId 这个参数,我也试了下,namespaceId 传与不传 public 都是查询的 public 命名空间,查询别的命名空间下的配置就会返回 404。

完整请求地址: <rnacos_url>:8848/nacos/v1/cs/configs?namespaceId=<custom_namespace>&group=<custom_group>&dataId=<custom_data_id>

heqingpan commented 3 weeks ago
image

你参数用错了,这个接口命名空间参数字段是tenant。

例子:

# 发布dev命名空间配置内容
curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs" -d 'dataId=config01&group=test&tenant=dev&content=testContent'
# 查询dev命名空间配置内容
curl -X GET 'http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=config01&group=test&tenant=dev'
yuzheng14 commented 3 weeks ago

我刚也查证到了,而且这个参数是传的生成的 id,不是命名空间的名称。

另外,我尝试跑了下官方版本的 nacos,发现命名空间的 id 是可以不填自动生成个 uuid 的,这个不打算与官方版本的功能同步吗?

heqingpan commented 3 weeks ago

你是指控制台创建命名空间id,还是接口创建命名空间。

命名空间相关的兼容改进正在进行中,具体可以参考 #127 与 #126;其中接口的兼容已经开始完成,这部分大概明晚会发布周一可用; 与配置中心联动这部分在v0.6版本支持,这部分会稍微晚两三周吧。

heqingpan commented 3 weeks ago

我刚也查证到了,而且这个参数是传的生成的 id,不是命名空间的名称。

另外,我尝试跑了下官方版本的 nacos,发现命名空间的 id 是可以不填自动生成个 uuid 的,这个不打算与官方版本的功能同步吗?

r-nacos v0.5.20 版本发布,'命名空间的 id 是可以不填自动生成个 uuid' 这个功能已支持。