nacos密码包含特殊符号导致服务注册失败,返回403问题

问题现象

       应用在启动时候向nacos注册服务的时候报403.具体错误如下所示:

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'>Tue Jun 24 12:16:58 CST 2025</div><div>There was an unexpected error (type=Forbidden, status=403).</div><div>user not found!</div></body></html>
环境说明
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.1.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.1.3.RELEASE</version>
        </dependency>

这里我使用的config和discover都是2.1.3版本,服务端2.4.3,

nacos服务端开启账号密码登录后:设置的账号nacos,密码1234@nacos

服务启动时候,就是连不上nacos服务器一直返回上面的403错误,确认账号密码无误后,还是不行。

这时我突然想起会不会是版本的问题?

升级版本,解决问题

把上面的两个版本都升级到 2.2.0RELEASE 后,再次重试,好家伙,应用可以注册了,服务起来了,惊不惊喜?

原因

问题是解决就,但是原因还是没搞清楚啊,为什么升级了一个小版本后,服务就可以启动了尼?

遇到问题第一反应当然是面向AI编程了啊?直接问题扔给AI,但是AI总结出来就是确认配置没问题,账号密码没问题,哎。

面向ai无果后怎么办?只能一头扎进nacos源码了啊,经过我七七四十九天的不懈努力,终于在源码里面找到了问题,下面放一张截图,一看便知。

原来是nacos在传递密码的时候使用了 URLEncoder.encode(password, "utf-8") 转义了,好家伙,还记得上面原来的密码么 1234@nacos, @被转义成了%40 ,难怪注册不了了

下面放一张2.2.0的这里的代码截图

没有对密码进行转义,所以有特殊符号也能注册成功。

Nacos 开启密码后 Feign 注册失败,可尝试以下解决办法: ### 1. 配置 Nacos 认证信息 在项目的配置文件(如 `application.yml` 或 `application.properties`)中正确配置 Nacos 的用户名和密码。 #### `application.yml` 示例: ```yaml spring: cloud: nacos: discovery: server-addr: 127.0.0.1:8848 username: nacos password: nacos ``` #### `application.properties` 示例: ```properties spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 spring.cloud.nacos.discovery.username=nacos spring.cloud.nacos.discovery.password=nacos ``` ### 2. 检查依赖版本兼容性 确保项目中使用的 Spring Cloud、Spring Cloud Alibaba Nacos 等相关依赖版本兼容。例如,某些版本组合可能存在兼容性问题导致 Feign 注册失败。可以参考 Spring Cloud 官方文档来选择合适的版本。 ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.6.RELEASE</version> </dependency> ``` ### 3. 检查 Nacos 服务状态 要保证 Nacos 服务正常运行,且开启了认证功能。可以通过访问 Nacos 控制台,使用配置的用户名和密码登录来验证 Nacos 服务的认证功能是否正常。 ### 4. 检查网络连通性 确保 Feign 客户端所在的服务能够正常访问 Nacos 服务。可以使用 `ping` 命令和 `telnet` 命令来测试网络连通性。 ```sh ping 127.0.0.1 telnet 127.0.0.1 8848 ``` ### 5. 查看日志信息 查看 Feign 客户端所在服务的日志,从中获取更详细的错误信息,以便定位问题。例如,可能会有认证失败、连接超时等相关错误信息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值