0


Nacos开启鉴权配置(Spring Cloud+Nacos)

Nacos开启鉴权配置(Spring Cloud+Nacos)

本文使用场景是Nacos开启单例模式下,在已有Java项目服务中,更换为鉴权模式的流程。主要流程分为两步:

1、开启Nacos鉴权模式

首先需要找到Nacos文件下的confapplication.properties
在这里插入图片描述

Nacos配置文件找到如下配置并且修改为以下内容
### If turn on auth system:(是否开启鉴权,这里选择开启)
nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=true
...

在2.2.0.1版本后,社区发布版本将移除以文档如下值作为默认值,需要自行填充,否则无法启动节点
### The two properties is the white list for auth and used by identity the request from other server.(自定义key/value)
nacos.core.auth.server.identity.key=example
nacos.core.auth.server.identity.value=example
...

自定义密钥时,推荐将配置项设置为Base64编码的字符串,且原始密钥长度不得低于32字符
### The default token(Base64 String):
nacos.core.auth.default.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=

### 2.1.0 版本后
nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=
修改后不需要重启,刷新即生效,觉得不够稳妥的也可以选择重启。
重启指令,在nacos的bin文件下打开cmd
startup.cmd -m standalone
重启之后访问页面会新增一个鉴权访问页面,如果直接进去的也可以重新登录。
输入密码,默认 nacos/nacos 即可进入配置界面。

在这里插入图片描述

2、修改Java项目鉴权配置

第一种,直接在application.yml/bootstrap加上访问nacos的账户密码,修改配置项

spring:cloud:nacos:config:password: nacos
        username: nacos
        server-addr: 127.0.0.1:8848discovery:server-addr: 127.0.0.1:8848group: DEFAULT_GROUP
        namespace: public
        password: nacos
        username: nacos

第二种,不修改已有配置,对上线产品直接修改启动指令即可不用修改程序,本文实例程序为打包好的Jar包。

1、如果是使用网关,则需要对网关进行修改相关授权。

//增加Nocos 授权认证
properties.setProperty(PropertyKeyConst.USERNAME, nacosDiscoveryProperties.getUsername());
properties.setProperty(PropertyKeyConst.PASSWORD, nacosDiscoveryProperties.getPassword());

在这里插入图片描述

2、对Jar包启动指令进行修改

可以先在本地idea执行看看是否会报错,项目程序没有配置地址时会产生报错

 http error, code=403,msg=user not found!,dataId=xxxxx.yaml,group=DEFAULT_GROUP,tenant=
 user not found

Idea里加上VM配置项,将以下指令和对应的账户密码输入,在启动Jar包时,编译器会将以下指令一并编译启动。

-Dfile.encoding=utf-8
-Dspring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
-Dspring.cloud.nacos.discovery.password=nacos
-Dspring.cloud.nacos.discovery.username=nacos
-Dspring.cloud.nacos.config.username=nacos
-Dspring.cloud.nacos.config.password=nacos

在这里插入图片描述

最后打包之后可以直接使用如下指令启动Jar包:

java -Dfile.encoding=utf-8 -Dspring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 -Dspring.cloud.nacos.discovery.password=nacos -Dspring.cloud.nacos.discovery.username=nacos -Dspring.cloud.nacos.config.username=nacos -Dspring.cloud.nacos.config.password=nacos -jar xxx.jar

3、遇到的问题

当Nacos配置和Java项目的application.yml都配置了之后,还是无法启动,报错user not found,数据库无法连接

1、检查用户名/密码是否能在Nacos客户端登录,并拥有权限获取到对应的配置分组

2、检查Nacos版本,可以尝试升级版本可能会解决问题。

在这里插入图片描述

在这里插入图片描述

以上是我目前遇到的问题,由于项目需要临时更换鉴权的方案,因此使用更改启动指令的方式进行重新部署


本文转载自: https://blog.csdn.net/ToLFrom_/article/details/140689948
版权归原作者 大猪大猪 所有, 如有侵权,请联系我们删除。

“Nacos开启鉴权配置(Spring Cloud+Nacos)”的评论:

还没有评论