企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-09权限(Privileges)
親歷的企業(yè)級微服務(wù)的完整構(gòu)建過程-系列文章目錄
本人參與了這次的企業(yè)級微服務(wù)的完整構(gòu)建,想要記錄下來以便以后復(fù)習(xí),同時也想分享給小伙伴們,拋磚引玉,歡迎大家提出自己的意見和建議,大家一起探討一起成長。以下為該系列所有文章的鏈接:
搭建和使用Maven私有倉庫(Nexus)-系列文章目錄
說明:
- 以下部分模塊,絕大多數(shù)人,在日常工作中都是用不到的,所以我就沒有介紹,畢竟時間是最重要的成本,沒必要花大量時間在我們用不到的內(nèi)容上。
- 下面的“1 通用”章節(jié),系列文章中的每一篇內(nèi)容都相同,介紹一些背景、約定和官網(wǎng)鏈接等,大家只要知道這些內(nèi)容了,就不用每篇文章都去看了。
本文目錄
- 親歷的企業(yè)級微服務(wù)的完整構(gòu)建過程-系列文章目錄
- 搭建和使用Maven私有倉庫(Nexus)-系列文章目錄
- 正文
- 1 通用
- 1.1 前言
- 1.2 約定
- 1.3 官方文檔
- 2 權(quán)限(Privileges)
- 2.1 概述
- 2.2 權(quán)限 Names
- 2.3 權(quán)限 Types
- 2.4 權(quán)限 Permissions
- 2.5 權(quán)限 Actions
- 2.6 創(chuàng)建一個權(quán)限
正文
1 通用
1.1 前言
在構(gòu)建微服務(wù)之前,需要先做一些準(zhǔn)備工作,比如Maven私有倉庫的管理。因為有些微服務(wù)模塊是作為公共組件被其他微服務(wù)引用的,這些公共的微服務(wù),就要設(shè)置為依賴,并用Maven倉庫管理起來,將自定義的依賴上傳到Maven中央倉庫并不是一個明智的選擇。原因有3個:
綜上,我們最好是搭建自己的私有Maven倉庫,而當(dāng)前最流行的就是 Sonatype Nexus Repository Manager,以下簡稱 Nexus。
1.2 約定
1.3 官方文檔
提供Nexus的官方文檔:https://help.sonatype.com/repomanager3/
官方文檔包含了系統(tǒng)要求、搭建方法,以及各種操作方法等,內(nèi)容已經(jīng)非常全面了。
2 權(quán)限(Privileges)
可用于:OSS,Pro
需要的訪問權(quán)限: nx-privilege 或 nx-all
2.1 概述
權(quán)限定義了可以在特定功能上執(zhí)行的行為。權(quán)限只能被分配給角色。下圖是權(quán)限模塊:
Nexus默認(rèn)包含了一批內(nèi)置的權(quán)限集合。該功能允許你檢查現(xiàn)有的權(quán)限和創(chuàng)建自定義權(quán)限。
2.2 權(quán)限 Names
權(quán)限的名稱是唯一標(biāo)識符。默認(rèn)包含的權(quán)限名稱都以 nx- 為前綴,不過如果是從 Nexus Repository 2 遷移過來的,則不一定,還是保持原來的名稱。自定義權(quán)限的名稱只能包含 字母,數(shù)字,下劃線,中橫線,以及英文句號,另外它不能以下劃線和英文句號開頭。
對于自定義權(quán)限,最好使用一個簡單的慣例來命名。例如使用一個簡單的首字母縮略詞來代表你的組織名稱。(比如,這家公司 Example Organization Inc.,可以使用 eoi- 作為權(quán)限名稱的前綴)
2.3 權(quán)限 Types
| Application | nexus:{name}:{actions} | create,read,update,delete | 最普遍的內(nèi)置權(quán)限,控制對 Administration 界面的特定產(chǎn)品功能區(qū)域的訪問。 即 nexus:blobstores:create,read 意味著允許創(chuàng)建和讀取 blobstores。 |
| Repository Admin | nexus:repository-admin:{format}:{repository}:{actions} | browse,read,edit,add,delete | 控制對于“特定的倉庫或倉庫格式”的配置的管理。 即 nexus:repository-admin:nuget:nuget.org-proxy:browse,read 意味著允許查看 nuget 格式的倉庫 nuget.org-proxy 的配置。 注意:該類權(quán)限不控制對倉庫內(nèi)容的訪問。 |
| Repository Content Selector | nexus:repository-content-selector:{selector}:{format}:{repository}:{actions} | browse,read,edit,add,delete | 提供“通過內(nèi)容選擇器(content selector)對某個倉庫中內(nèi)容的訪問”的細(xì)粒度的控制。 即 nexus:repository-content-selector:*:maven2:*:read 意味著允許一個用戶具有對“任何匹配 maven2 格式的內(nèi)容選擇器的內(nèi)容”的讀取權(quán)限。 |
| Repository View | nexus:repository-view:{format}:{repository}:{actions} | browse,read,edit,add,delete | 控制對所有包含在特定倉庫或倉庫格式中的內(nèi)容的常用訪問。 即 nexus:repository-view:maven2:central:browse,read 意味著允許瀏覽和讀取 maven2 格式的倉庫 central 的內(nèi)容。 注意:該類權(quán)限不允許更改倉庫的配置。 |
| Script | nexus:script:{script name}:{actions} | browse,read,edit,add,delete,run | 控制對使用 Groovy 腳本相關(guān)的 REST APIs 的訪問,詳見 REST and Integration API。這類權(quán)限不控制常用的 REST API 訪問。 即 nexus:script:*:read 意味著允許讀取任何名稱的所有腳本, nexus:script:my-uploaded-script:run 表示允許用戶運行(執(zhí)行)名為 my-uploaded-script 的腳本。 |
| Wildcard | * | * | 允許我們構(gòu)建一個權(quán)限字符串,該字符串使用一系列自由形式的分隔片段。Nexus中默認(rèn)只有一個通配符權(quán)限 nx-all,其權(quán)限模式是 nexus:*,可以訪問所有功能。 |
2.4 權(quán)限 Permissions
權(quán)限的 permissions 代表冒號分隔的文本片段列表。每個片段可以為:
- 一個單獨的文本值
- 一個逗號分隔的文本值列表
- 一個星號 *,代表那個片段中的所有值
內(nèi)部片段匹配算法使用 Apache Shiro wildcard permissions。
2.5 權(quán)限 Actions
Actions 是允許“權(quán)限可以使用相關(guān)函數(shù)執(zhí)行”的一個顯式行為的職能。
Actions 可以從 “add、browse、create、delete、edit、read、update、*”中選擇。當(dāng)你創(chuàng)建一個新的權(quán)限時,你必須分配逗號分隔的 actions 集合。你應(yīng)用在任何 action 上的權(quán)限類型都會執(zhí)行該 action 的隱含行為。
考慮每一個 action 應(yīng)用于一個權(quán)限類型時,是如何起作用的:
-
add
允許權(quán)限添加倉庫或腳本。 -
browse
允許權(quán)限查看相關(guān)倉庫的內(nèi)容。不同于 read,擁有 browse 的權(quán)限類型只能在頁面上查看和管理倉庫內(nèi)容。 -
create
允許權(quán)限在倉庫管理器中創(chuàng)建適用的配置。因為需要 read 查看配置內(nèi)容,所以 read 關(guān)聯(lián)了絕大多數(shù)的現(xiàn)有的 create 。 -
delete
允許權(quán)限刪除倉庫管理器的配置、倉庫內(nèi)容、腳本。因為刪除前需要先有 read 查看配置內(nèi)容,所以一般用 read 關(guān)聯(lián) delete action。 -
edit
允許權(quán)限修改關(guān)聯(lián)的腳本、倉庫內(nèi)容、倉庫管理配置內(nèi)容。 -
read
允許權(quán)限查看各種配置列表和腳本。如果沒有 read,任何關(guān)聯(lián)的 action 都會允許查看這些列表,但不允許查看其內(nèi)容。read 也允許權(quán)限利用“能夠從命令行查看內(nèi)容”的工具。 -
update
允許權(quán)限更新倉庫管理器配置。絕大多數(shù)現(xiàn)有的擁有 update 的權(quán)限也擁有 read action。因此,如果創(chuàng)建自定義的擁有 update 的權(quán)限,創(chuàng)建者應(yīng)該考慮同時添加 read 到該權(quán)限,以便查看倉庫管理器配置的更新。 -
該 action 是一個通配符,表示包含了所有的 actions。
2.6 創(chuàng)建一個權(quán)限
按照如下截圖進(jìn)行:
進(jìn)入“Privileges”頁面,點擊 “Create privilege”按鈕
選擇一個 權(quán)限類型
此處我們選擇 “Repository Admin”
填寫所有的必填字段,然后點擊“Create privilege”按鈕,保存,即可
上圖是創(chuàng)建了一個“Repository Admin”類型的權(quán)限,該權(quán)限具有對“maven2”格式的倉庫“maven-central”的配置(注意并非倉庫內(nèi)容)的瀏覽權(quán)限。
注:上圖中的字段說明:
- Name:權(quán)限名稱,必填、唯一
- Description:描述
- Format:格式,必填,如:maven2, nuget
- Repository:倉庫,必填,從現(xiàn)有的倉庫中選擇一個,或選擇全部倉庫
- Actions:動作,如 read,browse,edit,delete,create等。可以填寫多個actions,用逗號分隔
我們還可以使用篩選功能,在下面截圖中的右側(cè)篩選框中填寫篩選字符串
總結(jié)
以上是生活随笔為你收集整理的企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-09权限(Privileges)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动打电话服务器,MIUI v4 自己架
- 下一篇: H264编码器13(CAVLC和CABA