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