如何从nexus api中删除用户?

时间:2016-05-02 10:38:30

标签: api maven plugins nexus sonatype

我正在尝试几天为Sonatype nexus 3.0.0创建一些API自动化。我成功创建了脚本来创建角色,存储库和用户。但我坚持要删除它们。

我发现了很多旧文档(nexus 2.x.x),但没有任何实际内容,

我尝试在internal/SecurityApiImpl.groovyvoid deleteUser(String id, String sourceId)中添加方法;在 org.sonatype.nexus.security.SecurityApi但是当我尝试测试它时,我坚持

{
  "name" : "removeUser",
  "result" : "javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: org.sonatype.nexus.security.internal.SecurityApiImpl.deleteUser() is applicable for argument types: (java.lang.String, java.lang.String) values: [cosik, default]"
}

感谢您的回答。

2 个答案:

答案 0 :(得分:1)

我刚创建了类似的脚本。尝试使用默认的nexus领域删除用户。将用户作为json对象传递。目前适合我。

{
    "id": "bob1234"
}

import groovy.json.JsonOutput
import groovy.json.JsonSlurper

def sourceId = 'default'
def user = new JsonSlurper().parseText(args)
security.securitySystem.deleteUser(user.id, sourceId)
return groovy.json.JsonOutput.toJson(user)

答案 1 :(得分:1)

我一直在寻找“ nexus groovy delete role”,并且我只在“ delete user”上找到此SO帖子...如果要删除Role,必须调用:

导入静态org.sonatype.nexus.security.user.UserManager.DEFAULT_SOURCE

security.securitySystem.getAuthorizationManager(DEFAULT_SOURCE).deleteRole(id)

不幸的是,Nexus Groovy和Java API完全不一致。