1.背景说明
最近因为安全漏洞问题,需要对Nacos开启鉴权。
如果不开启鉴权,访问nacos接口可以直接获取nacos信息,如:
localhost:8848/nacos/v1/auth/users?pageNo=1&pageSize=10
可以直接获取用户列表。开启鉴权后,会提示403错误,所以需要开启鉴权。
但是网上看了很多,都是升级nacos-client版本,我在升级之后没有解决问题,还导致了依赖包冲突,所以我使用修改源码的方式来解决。这样就不依赖版本,算是一个比较通用的解决思路。后面进行详细说明。
2. 版本介绍
Naocs版本:2.0.3
spring-cloud版本:Hoxton.SR1
springboot版本:2.2.2.RELEASE
spring-cloud-alibaba:2.1.0.RELEASE
这几个版本本身兼容性没有任何问题,但是开启鉴权过程中,遇到了其他的问题,接下来对整个过程进行记录。
3.Nacos开启鉴权
修改conf/application.properties配置文件:
### If turn on auth system:
nacos.core.auth.enabled=true #默认是false,改为true###下面的内容改不改不影响鉴权,如果你是个追求完美的人,可以修改下
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=securitynacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
4.SpringBoot修改配置
spring:
cloud:
nacos:
config:
username: nacos #这里的账号是可以登录nacos控制台的账号
password: nacos #这里的账号是可以登录nacos控制台的账号对应的密码
file-extension: yaml
server-addr: 127.0.0.1:8848
discovery:
server-addr: 127.0.0.1:8848
5.访问失败
报错内容如下:
com.alibaba.nacos.api.exception.NacosException: <html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p ><div id='created'>Wed Dec 11 16:20:25 CST 2024</div><div>There was an unexpected error (type=Forbidden, status=403).</div><div>unknown user!</div></body></html>
at com.alibaba.nacos.client.config.impl.ClientWorker.getServerConfig(ClientWorker.java:260) ~[nacos-client-1.1.1.jar:na]
at com.alibaba.nacos.client.config.NacosConfigService.getConfigInner(NacosConfigService.java:173) ~[nacos-client-1.1.1.jar:na]
at com.alibaba.nacos.client.config.NacosConfigService.getConfig(NacosConfigService.java:122) ~[nacos-client-1.1.1.jar:na]
查看代码发现,nacos-lient版本是1.1.1,看网上说要升级版本,把nacos-li

最低0.47元/天 解锁文章
2356

被折叠的 条评论
为什么被折叠?



