联系 3 |如何使用 Nexus 3 API 创建(外部)用户?
Nexus 3 | How to create (external) users using Nexus 3 APIs?
我正在尝试使用 Nexus 3 API 在 Nexus 3 上创建外部用户。详情如下:
发布 Groovy 脚本使用:http://localhost:8081/nexus3/service/rest/v1/script
{
"name": "d8b3baeb-628a-43cc-9a9c-9a156f399e2",
"type": "groovy",
"content": "security.addUser('q018246a', '', '', '', true, 'd8b3baeb-628a-43cc-9a9c-9a156f399ae2', ['abc_test_role Developer Role']);"
}
运行 脚本使用:http://localhost:8081/nexus3/service/rest/v1/script/d8b3baeb-628a-43cc-9a9c-9a156f399e2/run
回复:
{
"name": "d8b3baeb-628a-43cc-9a9c-9a156f399e2",
"result": "User{userId='q018246a', firstName='', lastName='', source='default'}"
}
通过 Postman 进行访问,一切正常并创建了用户。但是通过应用服务器它给出 Bad request
.
尴尬的行为是,它让我使用 postman post 脚本和空白 first_name, last_name, email, password
创建用户,但是 UI 需要所有这些参数。
另一件事,它显示 source
为 default
但如何确保 source
为 LDAP
?
我假设您正在尝试映射 LDAP 用户?如果是这样,这将起作用:
import org.sonatype.nexus.security.role.RoleIdentifier;
import org.sonatype.nexus.security.user.User;
String userId = 'someuser';
String newRoleId = 'nx-admin'
User user = security.securitySystem.getUser(userId, 'LDAP')
if(user != null) {
RoleIdentifier newRole = new RoleIdentifier('default', newRoleId);
user.addRole(newRole)
security.securitySystem.setUsersRoles(user.getUserId(), 'LDAP', user.getRoles());
} else {
log.warn("No user with ID of $userId found.")
}
我正在尝试使用 Nexus 3 API 在 Nexus 3 上创建外部用户。详情如下:
发布 Groovy 脚本使用:http://localhost:8081/nexus3/service/rest/v1/script
{
"name": "d8b3baeb-628a-43cc-9a9c-9a156f399e2",
"type": "groovy",
"content": "security.addUser('q018246a', '', '', '', true, 'd8b3baeb-628a-43cc-9a9c-9a156f399ae2', ['abc_test_role Developer Role']);"
}
运行 脚本使用:http://localhost:8081/nexus3/service/rest/v1/script/d8b3baeb-628a-43cc-9a9c-9a156f399e2/run
回复:
{
"name": "d8b3baeb-628a-43cc-9a9c-9a156f399e2",
"result": "User{userId='q018246a', firstName='', lastName='', source='default'}"
}
通过 Postman 进行访问,一切正常并创建了用户。但是通过应用服务器它给出 Bad request
.
尴尬的行为是,它让我使用 postman post 脚本和空白 first_name, last_name, email, password
创建用户,但是 UI 需要所有这些参数。
另一件事,它显示 source
为 default
但如何确保 source
为 LDAP
?
我假设您正在尝试映射 LDAP 用户?如果是这样,这将起作用:
import org.sonatype.nexus.security.role.RoleIdentifier;
import org.sonatype.nexus.security.user.User;
String userId = 'someuser';
String newRoleId = 'nx-admin'
User user = security.securitySystem.getUser(userId, 'LDAP')
if(user != null) {
RoleIdentifier newRole = new RoleIdentifier('default', newRoleId);
user.addRole(newRole)
security.securitySystem.setUsersRoles(user.getUserId(), 'LDAP', user.getRoles());
} else {
log.warn("No user with ID of $userId found.")
}