如果配置类上使用了 `@ConfigurationProperties` 注解,在修改 Nacos 配置时会动态刷新属性的值,但如果通过 `@Value` 注解或者根据配置类创建的 Bean 则不会动态更新。使用 `@RefreshScope` 注解则可以在不重启应用的情况下动态刷新 Bean 实例。
默认情况下获取 Nacos 中的配置是不需要权限认证的,这个估计是由其使用场景决定的 (绝大多数都是仅内网可访问).
今天调查了下如何在获取配置时增加权限验证以提高其安全性。
1. 启用 Nacos 的权限认证
只要 nacos.core.auth.enabled 设置为 true
就行了。
### If turn on auth system:
nacos.core.auth.enabled=true
项目依赖如下(其中 nacos-client 版本为 1.1.4):
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-config</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
在 IDEA 中启动应用是正常的,但是通过如下 java 命令运行时会报错。
java -jar a-application-1.0-RELEASE.jar