Можно ли настроить Sonatype Nexus для ограничения того, какие артефакты может развертывать пользователь?

Я установил Nexus 2.0.6, и интеграция с моим сервером LDAP работает (только аутентификация). Есть ли способ настроить Nexus так, чтобы только набор разработчиков мог развернуть данный артефакт или группу?

В принципе, я не хочу, чтобы разработчик из команды А развертывал артефакт, за который отвечает команда Б.


person vegemite4me    schedule 03.07.2012    source источник


Ответы (2)


Вы можете разбить репозиторий, используя цели, привилегии и роли репозитория, как описано в этой записи блога Sonatype. Я тестировал это несколько месяцев назад, и, похоже, он работал хорошо.

person user944849    schedule 03.07.2012

В Nexus 2.0.1 это решение, которое я проработал и проверил.

Предостережения:
Это позволяет ограничить параметр "Загрузка артефакта" иерархией каталогов.
Это не совсем то же самое, что "развернуть" или в сочетании с "подготовкой к выпуску".

Шаги:

  1. Удалите единственную привилегию «Загрузка артефакта» из всех, у кого она есть в настоящее время, если вы не хотите ее иметь.

  2. Создайте «Repository-Target», который включает маску каталога, к которому вы хотите предоставить доступ. Бывший. .*/com/mycompany/target-dir/.*
    Дважды проверьте маску, она начинается с точки-звездочка и заканчивается точкой-звездочкой.

  3. Создайте «Repository-Privilege», который сопоставляется с только что созданным Repository-Target. Обычно я включаю имя репозитория в это имя-привилегии-репозитория, например «releases.com.mycompany.target-dir». Это создает записи CRUD (4) для указанного каталога.

  4. Затем создайте «Роль» на основе только что созданных привилегий репозитория (4), плюс «Загрузка артефакта». Всего 5 заявок на роль. Используйте здесь «Применить фильтр», чтобы помочь вам найти эти элементы. Я называю эту роль чем-то вроде «Upload.Role.Releases.Target-Dir». Опять же, когда закончите, должно быть 5 записей для этой роли:
    Загрузка артефакта
    com.mycompany.target-dir(create)
    com.mycompany.target-dir(delete)
    com.mycompany.target-dir(read)
    com.mycompany.target-dir(update)

    Это то, что ограничивает роль загрузки в этот repo.directory.

  5. Создайте пользователя, если он еще не существует, назначьте пароль.

  6. Назначьте пользователю следующие роли:
    Развертывание Nexus
    Репозиторий: все репозитории Maven (чтение)
    Пользовательский интерфейс: Базовые привилегии пользовательского интерфейса
    Upload.Role.Relases.Target-Dir

Нажмите сохранить, и вы получили его. Позже вы можете использовать тот же подход для создания новой роли для других репозиториев (скажем, Snapshot или 3rd Party) и сохранить ту же маску каталога.

person Eric Manley    schedule 08.08.2013