是否可以将Sonatype Nexus配置为限制用户可以部署哪些工件?

时间:2012-07-03 10:53:01

标签: maven nexus

我已经安装了Nexus 2.0.6,并且与我的LDAP服务器的集成正在运行(仅限身份验证)。有没有办法配置Nexus,以便只有一组开发人员能够部署给定的工件或组?

我基本上不希望团队A中的开发人员部署B团队负责的工件。

2 个答案:

答案 0 :(得分:6)

您可以使用in this Sonatype blog post所述的存储库目标,权限和角色对存储库进行分区。几个月前我对它进行了测试,看起来效果很好。

答案 1 :(得分:2)

在Nexus 2.0.1下,这是我已经完成并验证的解决方案。

警告:
这允许将“工件上载”选项限制为目录层次结构 这与“部署”或与“发布准备”结合使用并不完全相同。

步骤:

  1. 从目前拥有它的所有目标中删除“Artifact Upload”的单一权限,您不想拥有它。

  2. 创建“Repository-Target”,其中包含您要授予访问权限的目录掩码。防爆。 .*/com/mycompany/target-dir/.*
    仔细检查掩码,它以句号星号开头,以句号星号结束。

  3. 创建映射到刚创建的Repository-Target的“Repository-Privilege”。通常,我在此repository-privilege-name中包含repo-name,例如“releases.com.mycompany.target-dir”。这将为所述目录创建CRUD条目(4)。

  4. 接下来,根据您刚创建的存储库权限(4),“工件上传”创建“角色”。该角色共有5个条目。使用此处的“应用过滤器”可帮助您找到这些项目。我将此角色命名为“Upload.Role.Releases.Target-Dir”。同样,完成后,该角色应该有5个条目:
    神器上传
    com.mycompany.target-dir(创建)
    com.mycompany.target-dir(删除)
    com.mycompany.target-dir(阅读)
    com.mycompany.target-dir(update)

    这就是将上传角色限制在此repo.directory的内容。

  5. 如果用户尚不存在,请创建用户,指定密码。

  6. 为用户提供以下角色:
    Nexus部署
    回购:所有Maven存储库(阅读)
    UI:基本UI权限
    Upload.Role.Relases.Target-Dir

  7. 点击保存,你就知道了。稍后,您可以使用相同的方法为其他repos(例如Snapshot或3rd Party)创建新角色,并保留相同的目录掩码。