nacos升级开启鉴权后,微服务无法连接的解决方案

版本:

|----------------------|---------------|----------------------------|
| 软件 | 版本号 | 备注 |
| spring boot | 2.2.5.RELEASE | |
| spring-cloud | Hoxton.SR3 | |
| spring-cloud-alibaba | 2.2.1.RELEASE | |
| nacos | 2.0.1 | 从1.4.2版本进行升级。同时作为注册中心和配置中心 |

一、升级nacos版本,开启鉴权

1.在application.properties配置文件开启鉴权,保存后重启nacos

复制代码
nacos.core.auth.enabled=true

2.登录nacos,"权限控制"->"用户列表"->"创建用户",例如test

3."权限控制"->"角色管理"->"绑定角色",例如将test用户绑定test_role角色

4."权限控制"->"权限管理"->"添加权限",例如为test_role角色添加xxxx命名空间的资源和读写权限。

二、代码调整

在微服务的bootstrap.properties配置文件中补充:

复制代码
#nacos服务地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#nacos鉴权账户
spring.cloud.nacos.config.username=test
spring.cloud.nacos.config.password=123123
#对应的命名空间ID
spring.cloud.nacos.config.namespace=7104456b-d77d-43a0-a8db-d8daf6a85cbe
#分组,标记环境
spring.cloud.nacos.config.group=SENTINEL_GROUP

三、在nacos的配置文件中调整对应服务的配置文件中补充:

复制代码
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.username=test
spring.cloud.nacos.discovery.password=123123
spring.cloud.nacos.discovery.namespace=7104456b-d77d-43a0-a8db-d8daf6a85cbe
spring.cloud.nacos.discovery.group=SENTINEL_GROUP

四、重启微服务,启动成功。

常见问题

NacosPropertySourceBuilder : get data from Nacos error

NacosException:There was an unexpected error (type=Forbidden, status=403). unknown user!

1.经检查发现是配置鉴权账户时,用的是name,没有使用username,导致覆盖了

复制代码
spring.application.name的dataId配置,并且也没有指定鉴权账户。

2.命名空间和分组都要指定,不然也会报该错

相关推荐
考虑考虑16 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯17 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
fanly1117 小时前
Surging AI Agent 完整产品介绍
微服务·microservice
青石路21 小时前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java
杉氧1 天前
深入理解 Compose 重组机制:快照系统如何驱动 UI 精准刷新?
android·架构·android jetpack
像我这样帅的人丶你还1 天前
Java 后端详解(五):Redis 缓存
java·后端·全栈
杉氧1 天前
深度解析:Jetpack Compose 核心架构与底层原理 —— 十年安卓老兵的“破茧重生”
android·架构·android jetpack
Lion091 天前
ReAct 循环:Agent 的思考引擎 — Think → Act → Observe
架构
plainGeekDev1 天前
GreenDAO → Room
android·java·kotlin
得物技术1 天前
从狂野代码到按目标生产:得物推荐 AI Harness 的工程化实践|AICon 演讲整理
人工智能·算法·架构