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内容:

1
nacos.core.auth.enabled=true

这个开关采用了热加载模式,无需重启Server即可生效。因此当权限控制功能使用有异常时,可以直接回滚到不鉴权的模式。

注意:Nacos 1.2.0里登录和鉴权是绑定关系,而由于这个开关的默认值为false,因此默认启动时,是没有登录界面的。

使用权限控制

设置顺序:

  • 命名空间 -> 新建命名空间
  • 权限控制 -> 用户列表 -> 创建用户
  • 权限控制 -> 角色管理 -> 绑定角色
  • 权限控制 -> 权限管理 -> 添加权限

Client端配置

bootstap.yml配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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中没有,需要手动加入,才能使用权限功能

1
2
3
4
5
6
7
8
9
10
11
12
<!-- 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

1
2
3
4
5
6
7
8
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

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2021 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :