日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-09权限(Privileges)

發布時間:2023/12/29 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-09权限(Privileges) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

親歷的企業級微服務的完整構建過程-系列文章目錄

本人參與了這次的企業級微服務的完整構建,想要記錄下來以便以后復習,同時也想分享給小伙伴們,拋磚引玉,歡迎大家提出自己的意見和建議,大家一起探討一起成長。以下為該系列所有文章的鏈接:

  • 搭建和使用Maven私有倉庫(Nexus)(更新中。。。)
  • API網關(待發布)
  • 認證中心(待發布)
  • Redis框架(待發布)
  • RabbitMQ(待發布)
  • MyBatis(待發布)
  • Web模塊(待發布)
  • 低代碼(待發布)
  • Core
  • JSON工具類(待發布)
  • 日期工具類(待發布)
  • String工具類(待發布)
  • Number工具類(待發布)
  • Spring操作工具類(待發布)
  • API結構統一封裝(待發布)
  • 監控和告警(待發布)
  • MongoDB(待發布)

  • 搭建和使用Maven私有倉庫(Nexus)-系列文章目錄

    說明:

    • 以下部分模塊,絕大多數人,在日常工作中都是用不到的,所以我就沒有介紹,畢竟時間是最重要的成本,沒必要花大量時間在我們用不到的內容上。
    • 下面的“1 通用”章節,系列文章中的每一篇內容都相同,介紹一些背景、約定和官網鏈接等,大家只要知道這些內容了,就不用每篇文章都去看了。
  • 安裝步驟
  • 登錄和界面
  • 備份和恢復
  • 管理:講述了Nexus的管理功能,包括用戶管理、權限管理、任務管理等
  • 管理菜單
  • 倉庫管理
  • 格式(Formats)(暫時用不到,略)
  • 分期(Staging)(暫時用不到,略)
  • 標記(Tagging)(暫時用不到,略)
  • Maven和Jenkins插件(暫時用不到,略)
  • 任務(Tasks)
  • 訪問控制
  • 領域(Realms)管理
  • 權限(Privileges)管理
  • 角色(Roles)管理
  • 用戶(Users)管理
  • 默認角色(Default Role)管理
  • 內容選擇器(Content Selectors)管理
  • 用戶認證(暫時用不到,略)
  • 能力(Capabilities)(暫時用不到,略)
  • 節點(Nodes)
  • 配置SSL
  • HTTP和HTTPS請求和代理設置(暫時用不到,略)
  • 電子郵件服務器配置
  • 重試限制配置(暫時用不到,略)
  • 審計
  • 安裝和更新許可證
  • 支持功能
  • 使用Nexus倉庫:講述了使用(而非管理) Nexus Repository 的方方面面的知識
  • 倉庫管理器概念:使用 Nexus 需要先理解一些概念,該節內容提供了必要的背景和知識
  • 組件、倉庫和倉庫格式(暫時用不到,略)
  • 一個示例 - Maven 倉庫格式(暫時用不到,略)
  • 管理倉庫(暫時用不到,略)
  • 軟件供應鏈自動化(暫時用不到,略)
  • 代理倉庫概念(暫時用不到,略)
  • 用戶界面概述
  • 搜索組件(暫時用不到,略)
  • 瀏覽倉庫和倉庫組
  • 管理當前登錄用戶的資料
  • 上傳組件
  • 查看標簽(僅可用于Pro版本,略)
  • 集成(主要講述了如何使用 APIs 和 集成外部工具)(暫時用不到,略)
  • Maven中配置和使用Nexus

  • 本文目錄

    • 親歷的企業級微服務的完整構建過程-系列文章目錄
    • 搭建和使用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個:

  • 最重要的是隱私和安全問題,我們不可能把企業內部開發的組件上傳到公共網絡,讓所有人能夠隨便下載;
  • 上傳很麻煩,上傳方法詳見 https://blog.csdn.net/agonie201218/article/details/124800163;
  • 可能不允許上外網,則無法上傳;
  • 可能會有網絡延遲、上傳緩慢的問題。
  • 降低了中央倉庫的負擔。
  • 綜上,我們最好是搭建自己的私有Maven倉庫,而當前最流行的就是 Sonatype Nexus Repository Manager,以下簡稱 Nexus。

    1.2 約定

  • 我使用的版本是 OSS 3.40.1-01,整個系列的文章都是在該版本上展開介紹,你們可能使用的是 Pro 版,少數模塊是我的 OSS 版上沒有的。不過一般使用的話,OSS 版已經夠用了
  • 文中出現的 Repository ,中文稱之為“倉庫”
  • 文中出現的變量 $install-dir,值為 /opt/sonatype/nexus
  • 文中出現的變量 $data-dir,值為 /opt/sonatype/sonatype-work/nexus3 ,或 /nexus-data,兩者都是在docker容器nexus中的路徑,一個是軟鏈接,一個是實際路徑
  • 文中出現的變量 ${jetty.etc},值為 /opt/sonatype/nexus/etc/jetty
  • NXRM:Nexus Repository Manager,即 Nexus 倉庫管理器
  • RBAC:Role-Based Access Control,即 基于角色的訪問控制
  • 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

    類型Permission片段適用的 Actions描述
    Applicationnexus:{name}:{actions}create,read,update,delete最普遍的內置權限,控制對 Administration 界面的特定產品功能區域的訪問。

    即 nexus:blobstores:create,read 意味著允許創建和讀取 blobstores。
    Repository Adminnexus: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 Selectornexus:repository-content-selector:{selector}:{format}:{repository}:{actions}browse,read,edit,add,delete提供“通過內容選擇器(content selector)對某個倉庫中內容的訪問”的細粒度的控制。

    即 nexus:repository-content-selector:*:maven2:*:read 意味著允許一個用戶具有對“任何匹配 maven2 格式的內容選擇器的內容”的讀取權限。
    Repository Viewnexus:repository-view:{format}:{repository}:{actions}browse,read,edit,add,delete控制對所有包含在特定倉庫或倉庫格式中的內容的常用訪問。

    即 nexus:repository-view:maven2:central:browse,read 意味著允許瀏覽和讀取 maven2 格式的倉庫 central 的內容。

    注意:該類權限不允許更改倉庫的配置。
    Scriptnexus: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,用逗號分隔
  • 可以在“Privileges”頁面看到剛剛創建的權限
    我們還可以使用篩選功能,在下面截圖中的右側篩選框中填寫篩選字符串
  • 總結

    以上是生活随笔為你收集整理的企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-09权限(Privileges)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。