本文主要是介绍spring cloud 应用连接开启鉴权的nacos 的一个坑(鉴权失败),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Nacos开启鉴权之后,bootstrap.yml增加spring.cloud.nacos.config.username 和 password,如下:
spring:application:name: @artifactId@active: testcloud:nacos:config:server-addr: ${NACOS_HOST:192.168.21.60:8848}namespace: ${NACOS_NAMESPACE:xxx-xxx-xxx}username: ${NACOS_USERNAME:nacos}password: ${NACOS_PASSWORD:nacos}
但应用启动时,总是出错403,鉴权失败。
- 排错过程:
先做一个简单的logback配置文件logger-debug.xml,把nacos的日志输出设置的详细一些:
<configuration><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} %L - %msg%n</pattern></encoder></appender><logger name="com.alibaba.cloud.nacos" level="TRACE"><appender-ref ref="STDOUT"/></logger><root level="INFO"><appender-ref ref="STDOUT"/></root>
</configuration>
启动时指定这个日志文件:java -Dlogger.config=logger-debug.xml -jar myapp.jar
可可以看到在 HttpLoginProcessor 这个类的 78行 ,登录认证时错了个异常:
login failed: {"code":404,"message":"<!doctype html><html lang=\"en\"><head><title>HTTP Status 404 – Not Found</title><style type=\"text/css\">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 404 – Not Found</h1></body></html>
代码如图:
可以看到登录的url拼上了一个 contextPath,上溯代码可知,对应配置 spring.cloud.nacos.config.context-path。加上即可:
context-path: /nacos
简单记录供参考。
这篇关于spring cloud 应用连接开启鉴权的nacos 的一个坑(鉴权失败)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!