Nacos 1.2.0 权限控制使用
Nacos 1.2.0 权限控制介绍和使用:https://nacos.io/en-us/blog/nacos%201.2.0%20guide.html
Server端配置
Server端打开权限控制开关。修改con/application.properties
内容:
nacos.core.auth.enabled=true
这个开关采用了热加载模式,无需重启Server即可生效。因此当权限控制功能使用有异常时,可以直接回滚到不鉴权的模式。
注意:Nacos 1.2.0里登录和鉴权是绑定关系,而由于这个开关的默认值为false,因此默认启动时,是没有登录界面的。
使用权限控制
设置顺序:
- 命名空间 -> 新建命名空间
- 权限控制 -> 用户列表 -> 创建用户
- 权限控制 -> 角色管理 -> 绑定角色
- 权限控制 -> 权限管理 -> 添加权限
Client端配置
bootstap.yml配置文件
spring:
application:
name: union-pay-gateway
profiles: prod
cloud:
nacos:
#discovery:
#username: xxx
#password: xxx
#server-addr: https://nacos.yezhou.me
config:
server-addr: https://nacos.yezhou.me
context-path: /nacos
file-extension: yaml
group: TAOZIPAY
namespace: production
timeout: 6000
username: xxx
password: xxx
extension-configs:
- data-id: common.yaml
group: DEFAULT_GROUP
refresh: true
server:
port: 8805
其中context-path必须改成 /nacos,通过源码追踪可以发现,如果不改,连接的时候会登陆不上,报错403。
加入两个新的依赖
这两个依赖在最新的Alibaba Cloud
中没有,需要手动加入,才能使用权限功能
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-api -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-api</artifactId>
<version>1.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.2.1</version>
</dependency>
在访问nacos前加入一层nginx
location /nacos/ {
proxy_pass http://nacosserver/nacos/;
rewrite (.*)//(.*) $1$2 permanent;
}
location /n/ {
proxy_pass http://nacosserver/;
rewrite (.*)//(.*) $1$2 permanent;
}
这样做的目的是为了重写//
为/
,保证security的url校验能够成功
其中 nacosserver是nacos的访问url,这里配置了两个,第一个是访问nacos的管理界面,第二个是client注册nacos的url
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/24/nacos-1-2-0-permission-control-usage/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论