Nexus 3 |Как создать (внешних) пользователей с помощью API Nexus 3? - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь создать внешнего пользователя на 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'}"
}

Нажав на Почтальона,все работает нормально и пользователи создаются.Но через сервер приложений он выдает Bad request.

Неудобное поведение: он позволяет мне создавать пользователя с помощью почтового сценария почтальона с пустым first_name, last_name, email, password, но все эти параметры обязательны для пользовательского интерфейса.

Другое дело, он показывает source как default, но как мне обеспечить source как LDAP?

1 Ответ

1 голос
/ 28 мая 2019

Я полагаю, вы пытаетесь сопоставить пользователя 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.")
}
...