2012-07-03 1 views
6

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

В основном я не хочу, чтобы разработчик в Team A использовал артефакт, за который отвечает команда B.

ответ

6

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

2

Под Nexus 2.0.1 это решение, над которым я работал и проверен.

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

Шаги:

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

  2. Создайте «Объект репозитория», который включает в себя маску каталога, где вы хотите предоставить доступ. Ex. .*/com/mycompany/target-dir/.*
    Двойная проверка маски, начинается с периода-звездочки И заканчивается звездочкой-звездочкой.

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

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

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

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

  6. Дайте пользователю следующие роли:
    Nexus Сработала
    Repo: Все Maven Хранилища (Read)
    UI: Привилегий интерфейса базы
    Upload.Role.Relases.Target-Dir

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

Смежные вопросы