自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

捋明白 RabbitMQ 中的權(quán)限系統(tǒng),再也不擔(dān)心消息發(fā)送失敗了!

開(kāi)發(fā) 前端
不管我們是通過(guò)網(wǎng)頁(yè)還是通過(guò)命令行工具創(chuàng)建用戶對(duì)象,剛創(chuàng)建好的用戶對(duì)象都是沒(méi)法直接使用的,需要我們首先把這個(gè)用戶置于某一個(gè) vhost 之下,然后再賦予其權(quán)限,有了權(quán)限,這個(gè)用戶才可以正常使用。

 [[438846]]

不管我們是通過(guò)網(wǎng)頁(yè)還是通過(guò)命令行工具創(chuàng)建用戶對(duì)象,剛創(chuàng)建好的用戶對(duì)象都是沒(méi)法直接使用的,需要我們首先把這個(gè)用戶置于某一個(gè) vhost 之下,然后再賦予其權(quán)限,有了權(quán)限,這個(gè)用戶才可以正常使用。

那么今天我們就來(lái)了解一下 RabbitMQ 中的權(quán)限系統(tǒng),看下這個(gè)權(quán)限系統(tǒng)是什么樣子的。

1. RabbitMQ 權(quán)限系統(tǒng)介紹

RabbitMQ 是從 1.6 這個(gè)版本開(kāi)始實(shí)現(xiàn)了一套 ACL 風(fēng)格的權(quán)限系統(tǒng),可能有小伙伴還不知道什么是 ACL 風(fēng)格的權(quán)限系統(tǒng),可以看看松哥之前發(fā)的這兩篇文章:

Spring Security 中如何細(xì)化權(quán)限粒度?

一個(gè)案例演示 Spring Security 中粒度超細(xì)的權(quán)限控制!

在這套 ACL 風(fēng)格的權(quán)限管理系統(tǒng)中,允許非常多細(xì)粒度的權(quán)限控制,可以為不同用戶分別設(shè)置讀、寫(xiě)以及配置等權(quán)限。

這里涉及到三種不同的權(quán)限:

  • 讀:和消息消費(fèi)有關(guān)的所有操作,包括清除整個(gè)隊(duì)列的消息。
  • 寫(xiě):發(fā)布消息。
  • 配置:消息隊(duì)列、交換機(jī)等的創(chuàng)建和刪除。

這是 RabbitMQ 權(quán)限系統(tǒng)的一個(gè)簡(jiǎn)單介紹。

2. 操作和權(quán)限的對(duì)應(yīng)關(guān)系

接下來(lái),下圖展示了操作和權(quán)限的對(duì)應(yīng)關(guān)系:

公眾號(hào)后臺(tái)回復(fù) rabbitmq_permission 可以獲取這張圖的 Excel 表格。

執(zhí)行什么命令,需要什么權(quán)限,這張圖描述的一清二楚了。

3. 權(quán)限操作命令

RabbitMQ 中權(quán)限操作命令格式如下:

  1. rabbitmqctl set_permissions [-p vhosts] {user} {conf} {write} {read

這里有幾個(gè)參數(shù):

  • [-p vhost]:授予用戶訪問(wèn)權(quán)限的 vhost 名稱,如果不寫(xiě)默認(rèn)為 /。
  • user:用戶名。
  • conf:用戶在哪些資源上擁有可配置權(quán)限(支持正則表達(dá)式)。
  • write:用戶在哪些資源上擁有寫(xiě)權(quán)限(支持正則表達(dá)式)。
  • read:用戶在哪些資源上擁有讀權(quán)限(支持正則表達(dá)式)。

至于可配置權(quán)限能干嘛,寫(xiě)權(quán)限能干嘛,讀權(quán)限能干嘛,大家可以參考第二小節(jié),這里不再贅述。

松哥來(lái)舉一個(gè)簡(jiǎn)單的例子。

假設(shè)我們有一個(gè)名為 zhangsan 的用戶,我們希望該用戶在 myvh 虛擬主機(jī)下具備所有權(quán)限,那么我們的操作命令如下:

  1. rabbitmqctl set_permissions -p myvh zhangsan ".*" ".*" ".*" 

執(zhí)行結(jié)果如下:

接下來(lái)執(zhí)行如下命令可以驗(yàn)證授權(quán)是否成功:

  1. rabbitmqctl -p myvh list_permissions 

可以看到,張三的權(quán)限已經(jīng)賦值到位。

在上面的授權(quán)命令中,我們用的都是 ".*",松哥再額外說(shuō)下這個(gè)通配符:

".*":這個(gè)表示匹配所有的交換機(jī)和隊(duì)列。

"javaboy-.*":這個(gè)表示匹配名字以 javaboy- 開(kāi)頭的交換機(jī)和隊(duì)列。

"":這個(gè)表示不匹配任何隊(duì)列與交換機(jī)(如果想撤銷用戶的權(quán)限可以使用這個(gè))。

我們可以使用如下命令來(lái)移除某一個(gè)用戶在某一個(gè) vhost 上的權(quán)限,例如移除 zhangsan 在 myvh 上的所有權(quán)限,如下:

  1. rabbitmqctl clear_permissions -p myvh zhangsan 

執(zhí)行完成后,我們可以通過(guò) rabbitmqctl -p myvh list_permissions 命令來(lái)查看執(zhí)行結(jié)果是否生效,最終執(zhí)行效果如下:

如果一個(gè)用戶在多個(gè) vhost 上都有對(duì)應(yīng)的權(quán)限,按照上面的 rabbitmqctl -p myvh list_permissions 命令只能查看一個(gè) vhost 上的權(quán)限,此時(shí)我們可以通過(guò)如下命令來(lái)查看 lisi 在所有 vhost 上的權(quán)限:

  1. rabbitmqctl list_user_permissions lisi 

4. Web 管理頁(yè)面操作

當(dāng)然,如果你不想敲命令,也可以通過(guò) Web 管理端去操作權(quán)限。

在 Admin 選項(xiàng)卡,點(diǎn)擊用戶名稱,就可以給用戶設(shè)置權(quán)限了,如下:

可以設(shè)置權(quán)限,也可以清除權(quán)限。

當(dāng)然,在網(wǎng)頁(yè)上還有一個(gè) Topic Permissions,這是 RabbitMQ3.7 開(kāi)始的一個(gè)新功能,可以針對(duì)某一個(gè) topic exchange 設(shè)置權(quán)限,主要針對(duì) STOMP 或者 MQTT 協(xié)議,我們?nèi)粘?Java 開(kāi)發(fā)用上這個(gè)配置的機(jī)會(huì)很少。如果用戶不設(shè)置的話,相應(yīng)的 topic exchange 也總是有權(quán)限的。

5. 小結(jié)

好啦,這就是關(guān)于 RabbitMQ 權(quán)限管理的一點(diǎn)點(diǎn)小知識(shí)~感興趣的小伙伴可以去試試?yán)病?/p>

本文轉(zhuǎn)載自微信公眾號(hào)「江南一點(diǎn)雨」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系江南一點(diǎn)雨公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 江南一點(diǎn)雨
相關(guān)推薦

2015-05-29 09:01:48

2021-12-21 09:05:46

命令Linux敲錯(cuò)

2023-06-06 08:11:09

kafka事務(wù)消息語(yǔ)義

2020-04-30 09:19:56

Docker容器虛擬機(jī)

2020-01-21 21:15:16

WiFi網(wǎng)絡(luò)WiFi6

2020-06-15 08:03:17

大文件OOM內(nèi)存

2023-07-14 21:34:40

JVM上下線線程

2021-08-13 22:38:36

大數(shù)據(jù)互聯(lián)網(wǎng)技術(shù)

2019-09-04 10:00:07

手機(jī)人臉識(shí)別

2022-09-14 08:02:25

加密算法Bcryp

2015-10-22 10:38:43

Wi-Fi燃?xì)鈭?bào)警器

2021-06-11 07:14:04

QQ音樂(lè)微信翻譯

2021-06-04 12:05:03

Redis Bitmap 數(shù)據(jù)庫(kù)

2021-06-08 07:48:26

數(shù)據(jù) Python開(kāi)發(fā)

2018-10-30 16:10:41

Linux救援模式命令

2016-08-09 16:17:37

高德地圖TFBOYS大數(shù)據(jù)

2024-06-20 12:51:37

PythonTermcolor庫(kù)

2021-09-30 22:46:05

微信安全支付

2020-04-30 09:01:27

路由器安全網(wǎng)絡(luò)安全路由器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)