Nexus Repo Manager-如何获取基于Repo名称的角色?

时间:2019-03-28 16:24:29

标签: curl nexus

我正在尝试列出当前有权访问Nexus存储库A的所有角色。

1 个答案:

答案 0 :(得分:1)

回购管理器中没有朝该方向进行的查找。但是您可以编写一个遍历角色/特权树的普通脚本,并以此方式获取信息。

这是一个简单的脚本,可以帮助您朝正确的方向前进:

allRoles = security.getSecuritySystem().listRoles()
allPrivileges = security.getSecuritySystem().listPrivileges()


log.info("\n  ---------------------------- \n Listing Roles and Privileges \n" +
        "  ---------------------------- ")
roleSize = allRoles.size()
log.info("Roles found: $roleSize")
for (r in allRoles) {
    log.info("Role --> RoleId: $r.roleId, Name: $r.name, Source: $r.source")

    log.info("Role --> RoleId: $r.roleId, Name: $r.name, Source: $r.source")
    for(p in r.privileges) {
        rolePrivilege = allPrivileges.find { it.id == (p) }
        if (rolePrivilege) {
            log.info("Privilege for role '$r.name' --> Id: $rolePrivilege.id, Name: $rolePrivilege.name, Desc: $rolePrivilege.description")
        }
    }
}

您可以通过创建“ admin-执行脚本”任务或在REST API(如此处所述)在admin UI的“系统/任务”中运行此代码:

https://help.sonatype.com/display/NXRM3/Script+API

我也强烈建议为脚本开发设置一个IDE环境,以便您可以使用代码完成功能,并直接从脚本中浏览Nexus源代码:

https://support.sonatype.com/hc/en-us/articles/115015812727-Nexus-3-Groovy-Script-development-environment-setup