学习nacos过程中发现,nacos有个权限管理,我就依次添加了用户、角色和权限管理,然后发现权限管理不生效,即使不给新用户配置权限,也能访问到所有的命名空间。查询资料发现需要设置nacos配置文件nacos.core.auth.enabled=true,然后重启nacos,发现权限果然好用了,但是在启动java服务的时候,报403错误
问题描述
nacos开启权限认证后,nacos config无法使用,nacos discovery无法使用,启动报如下错误
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Sun May 30 22:19:43 CST 2021There was an unexpected error (type=Forbidden, status=403).unknown user!
问题解决步骤
-
(必须)确保spring-cloud-alibaba-dependencies依赖版本在2.2.0.RELEASE以上,我原来的版本是2.1.0.RELEASE,需要升级
-
(必须)移除spring-cloud-starter-alibaba-nacos-discovery以及spring-cloud-starter-alibaba-nacos-config依赖中的nacos-client
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <exclusions> <exclusion> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <exclusions> <exclusion> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> </exclusion> </exclusions> </dependency>
-
(必须)添加nacos-client依赖版本1.2.1以上版本
<dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>1.2.1</version> </dependency>
-
(根据自己的需求修改)添加nacos-config和nacos-discovery配置文件,如下图,用户名是自己的nacos用户名以及nacos密码,请以自己的为准,并且留意该用户名下是否有对应的权限,注意yml格式对齐,别对错行了
查找到的资料
原文地址
https://github.com/alibaba/spring-cloud-alibaba/issues/1305