Контроль доступа#
Внимание
Данный раздел переведен с использованием инструментов машинного перевода
В Artifactory используется управление доступом на основе ролей (RBAC), чтобы предоставить администраторам контроль над правами пользователей на следующее:
Доступ к веб-приложению Artifactory;
Доступ на чтение к пути компонента в репозитории;
Доступ администратора к конфигурации;
Публикация или загрузка файлов в репозиторий.
Конфигурация по умолчанию поставляется с ролью администратора и дополнительным анонимным доступом для просмотра и чтения всех репозиториев.
Примечание
Роль администратора по умолчанию предоставляет права на все аспекты системы Artifactory и использует имя пользователя admin. Начальный пароль находится в файле admin.password в каталоге $data-dir после запуска.
Контроль доступа на основе ролей#
В Artifactory используется RBAC для назначения доступа на основе роли пользователя. Следуя принципу минимальных привилегий, доступ предоставляется только на основе функциональности, необходимой для выполнения его работы. Также можно согласовать роли Artifactory с внешними ролями и группами, управляемыми службами каталогов вашей организации.
Ниже приведен краткий пример адаптации новых сотрудников команды разработки:
Команде разработчиков Apollo необходим доступ к размещенному репозиторию с именем dev-apollo. Члены группы назначены в корпоративной Active Directory.
Администратор Artifactory создает новую роль с именем team-apollo и назначает ее группе Apollo из Active Directory. Процесс создания роли описан в разделе Создание ролей.
Администратор добавляет в роль team-apollo следующие права просмотра, чтения и записи для репозитория:
nx-repository-view-maven2-dev-apollo-add
nx-repository-view-maven2-dev-apollo-read
nx-repository-view-maven2-dev-apollo-browse
Примечание
Доступ, предоставленный по одним правам, не может быть снят по другим. По этой причине лучшей практикой является предоставление доступа только к тем ресурсам, которые необходимы команде. Использование привилегий со звездочкой „*“ может быть нежелательным в долгосрочной перспективе, поскольку они потребуют значительных усилий для аудита и отката.
Права (Privileges)#
Определение прав#
Права определяют действия, которые можно выполнять в отношении определенной функциональности. Права могут быть назначены только ролям.
Для управления правами доступа, перейдите в раздел Security в меню Администрирование, где они перечислены в виде подраздела. Обширный список прав уже встроен в менеджер репозиториев и частично представлен на рисунке ниже. Эта функция позволяет проверять существующие права и создавать пользовательские права по мере необходимости. Для доступа к этой странице пользователям понадобятся права nx-privilege или nx-all.

Имена прав#
Имена - это уникальные идентификаторы. Права, включенные по умолчанию, имеют префикс nx- . Права, которые создаются администратором, могут состоять только из букв, цифр, знаков подчеркивания _, дефисов - и точек .. Имя привилегии не может начинаться с подчеркивания или точки ..
Для пользовательских привилегий рекомендуется использовать простое соглашение об именовании. Например, использовать простую аббревиатуру, обозначающую название вашей организации. Например, организация Organization. может использовать в именах своих прав префикс eoi-.
Типы прав#
В списке привилегий в первом столбце списка отображается значок, обозначающий тип привилегии.
Тип |
Сегменты разрешений |
Применимые действия |
Описание |
|---|---|---|---|
Application |
|
|
Привилегии типа Application чаще всего являются встроенными привилегиями, которые управляют доступом к определенным функциональным областям продукта в пользовательском интерфейсе администрирования. Например, |
repository-admin |
|
|
Права администратора репозитория управляют администрированием конфигурации для определенных репозиториев или форматов репозиториев. Эти права не контролируют доступ к содержимому репозитория |
repository-content-selector |
|
|
Права Repository Content Selector обеспечивают тонкую настройку прав доступа к содержимому репозитория с помощью селектора содержимого. Например, |
repository-view |
|
|
Права Repository View контролируют общий доступ ко всему содержимому, содержащемуся в определенных репозиториях или форматах репозиториев. Например, |
script |
|
|
Права сценария контролируют доступ к использованию REST API, связанных с Groovy Script, как описано в разделе REST и Integration API. Эти права не контролируют общий доступ к REST API. Например, |
wildcard |
* |
* |
Привилегии Wildcard позволяют построить строку привилегий, используя серию сегментов в произвольной форме. Все остальные типы привилегий являются более конкретными сегментными формами привилегий с подстановочным знаком. По умолчанию включена только одна привилегия с подстановочным знаком |
Разрешения прав доступа#
Права представляются в виде списка текстовых сегментов, разделенных двоеточиями (без пробелов после двоеточий), каждый сегмент может быть одним из следующих:
одно текстовое значение;
список текстовых значений, разделенных запятой;
символ «*» (звездочка) - для обозначения всех значений в данном сегменте.
Действия с правами#
Действия — функции, разрешающие явное поведение, которое привилегия может выполнять с соответствующей функцией.
При создании новых прав нужно назначить одно или несколько действий, при назначении нескольких действий разделяйте каждое действие запятой, но не используйте пробелы после запятых (например, «add,browse,create»). Используйте любое из этих действий, каждое будет выполнять подразумеваемое действие. Рассмотрим, как ведет себя каждое действие при применении к типу прав:
Действие |
Описание |
|---|---|
|
Это действие позволяет добавлять содержимое репозитория или скрипты |
|
Это действие позволяет просматривать содержимое связанных репозиториев. В отличие от read, типы привилегий с browse могут просматривать и администрировать содержимое репозитория только из пользовательского интерфейса |
|
Это действие позволяет создавать применимые конфигурации в менеджере репозиториев. Поскольку для просмотра конфигурации требуется разрешение на чтение, это действие связано с большинством существующих прав на создание |
|
Это действие дает права на удаление конфигураций менеджера репозитория, содержимого репозитория и скриптов. Действие чтения обычно связано с действием удаления, поэтому агент может просматривать эти конфигурации, чтобы удалить их |
|
Это действие дает права на изменение скриптов, содержимого репозитория и настроек. |
|
Это действие дает права на просмотр различных списков конфигурации и скриптов. Без |
|
Это действие позволяет привилегиям обновлять конфигурации менеджера репозитория. Большинство существующих прав с обновлением включают действие чтения. Поэтому при создании пользовательских прав с |
|
Это действие представляет собой подстановочный знак, дающий возможность группировать все действия вместе |
Создание права#
Нажмите кнопку Create privilege, чтобы просмотреть список типов привилегий, как показано на рисунке ниже:

Выбрав тип, заполните необходимые поля и сохраните привилегию. Привилегию можно найти в списке стандартных привилегий на главном экране привилегий. Чтобы найти конкретную привилегию, можно воспользоваться полем ввода Filter.
Пример: Создание права приложения#
В следующем примере создается привилегия типа Application:

Права и групповые репозитории#
Можно назначить права пользователям и любой назначенной роли, чтобы они имели доступ только для чтения к определенному репозиторию группы. По умолчанию эти права позволяют пользователям просматривать содержимое только через назначенную группу.
Кроме того, пользователи не могут получить доступ к содержимому группового репозитория через членов группы, если репозиторию не назначены те же права, что и группе.
Если пользователь получает право доступа к групповому репозиторию, то он также будет иметь право доступа ко всем транзитивным членам группового репозитория. Прямые запросы отдельных членов группы будут работать только в том случае, если пользователю дано явное разрешение на доступ к этому репозиторию.
Администраторы групп также должны иметь права как на группу, так и на всех ее членов, чтобы управлять конфигурацией группы.
Управление разрешениями селектора#
В рамках настройки безопасности можно создать права пользователей для управления фильтрами, созданными в форме Create Selector. Для этого создается привилегия, которая контролирует операции над компонентами, соответствующими данному селектору. Привилегия может распространяться даже на несколько репозиториев.
Чтобы создать новую привилегию для селектора содержимого, выберите Привилегии в разделе Безопасность на панели администрирования.
Выберите кнопку Create Privilege.
Найдите и выберите Repository Content Selector из списка опций в Select Privilege Type.
Появится форма, в которой отображается следующее:
Name — Создайте имя для привилегии «Селектор содержимого».
Description — Добавьте краткое описание привилегии.
Content Selector — Используйте этот выпадающий список для выбора из списка созданных селекторов.
Repository — Используйте этот выпадающий список для выбора диапазона всех репозиториев, отдельного формата или созданных репозиториев.
Actions — Предоставьте права просмотра, чтения, редактирования, удаления, создания, обновления или * для управления доступом пользователей.
Сохраните новую привилегию, выбрав Create privilege
Можно использовать новую привилегию для регулирования допустимых данных, к которым хотите предоставить доступ пользователю. Можно сгруппировать все связанные права в роль, как описано в разделе Роли.
Роли#
Роли объединяют права в связанный контекст и могут быть сгруппированы для создания более сложных ролей.
Чтобы создать роли и управлять ими, перейдите в раздел Администрирование → Security → Roles.
Примечание
Для доступа к экрану «Роли» необходимо иметь права nx- ролей или nx-all.
Чтобы создавать, редактировать или удалять роли, нужно обладать привилегией nx-privilege-read или nx-all.
Artifactory поставляется с предопределенными ролями администратора и анонима, которые уже видно в списке, появляющемся на этом экране. Эти роли редактировать или удалять не получится.

Создание ролей#
Чтобы создать новую роль, выполните следующие действия:
Выберите кнопку Create role на странице Roles.
Выберите подходящий вариант в раскрывающемся меню Role Type, обычно это будет роль для любой роли, которую создаете вручную.
В форме настройки роли укажите идентификатор роли и имя роли. По желанию укажите описание роли.

В разделе Applied Privileges выберите Modify Applied Privileges, чтобы управлять применяемыми правами роли.

Появится всплывающее окно, в котором можно выбрать и отменить права, предоставленные этой роли. Можно использовать фильтр для поиска прав, которые нужно применить. Можно увидеть все выбранные права, отсортировав их с помощью флажка Select column. После выбора прав, которые будут применены к этой роли, нажмите кнопку Confirm .
Если хотите применить существующую роль к этой новой роли, выберите кнопку Modify Applied Roles в разделе Applied Roles. Появится модальное окно, в котором можно выбрать или отменить выбор других ролей для применения к этой новой роли. Также можно использовать фильтр для поиска других ролей.
После выбора ролей для применения к этой роли выберите кнопку Confirm.
Выберите кнопку Save, чтобы сохранить новую роль.
Управление ролями#
Чтобы управлять существующей ролью, выполните следующие действия:
Выберите роль, которую хотите изменить, из списка на главной странице Roles.
Можете редактировать имя и описание роли, однако не получится изменить ID роли.
В разделе Applied Privileges выберите Modify Applied Privileges, чтобы управлять применяемыми правами роли. Появится модальное окно, в котором можно выбрать и удалить права, предоставленные этой роли. Также можно использовать фильтр для поиска применяемых прав.
После внесения изменений в применяемые права нажмите кнопку Confirm.
Если необходимо уточнить, какие разрешения применяются к этой роли, нажмите кнопку Modify Applied Roles в разделе Applied Roles. Появится модальное окно, в котором можно выбрать или отменить выбор других ролей, которые будут применены к этой новой роли. Вы также можете использовать фильтр для поиска других подходящих ролей.
После выбора разрешений для применения к этой роли нажмите кнопку Confirm.
Нажмите кнопку Save, чтобы сохранить изменения, внесенные в эту роль.
Удаление ролей#
Чтобы удалить роль, выполните следующие действия:
Выберите роль, которую хотите удалить, из списка на главной странице Roles.
В нижней части формы нажмите кнопку Delete. Появится всплывающее окно с запросом на подтверждение удаления роли.
Выберите Confirm, чтобы подтвердить удаление.
Пользователи#
По умолчанию менеджер репозиториев поставляется с двумя пользователями: admin и anonymous. Пользователь admin имеет все права, а анонимный пользователь имеет права только на чтение. Начальный пароль для пользователя admin можно найти в файле admin.password, расположенном в каталоге $data-dir после запуска сервера.
Вид функции Users можно получить через пункт Users в разделе Security меню Administration. Для просмотра этой страницы пользователи должны иметь права nx-users или nx-all. При загрузке страницы выбран источник безопасности Default, который представляет локальная группа NXRM. В отфильтрованном списке отображаются идентификатор пользователя, имя, фамилия, электронная почта и статус пользователей из источника безопасности, выбранного в раскрывающемся списке.

При нажатии на имя пользователя в списке или при нажатии на кнопку Create user отображаются поля для редактирования или создания учетной записи. Для внешних пользователей, после настройки внешней группы можно редактировать их разрешения здесь же. Просто выберите группу, в которой находится пользователь, из выпадающего списка Source. Затем введите user ID в поле справа от этого выпадающего списка и выполните поиск. Затем нажмите на нужный результат для редактирования, как и для локального пользователя.
Примечание
Чтобы использовать функции создания, редактирования и удаления пользователей, пользователю без права nx-all также потребуется nx-roles-read. Это связано с тем, что на странице пользователей перечислены роли.

ID может быть задан при первом создании и в дальнейшем остается неизменным. Кроме того, можно указать имя, фамилию и адрес электронной почты пользователя. Также необходимо ввести и подтвердить пароль.
Статус позволяет установить для учетной записи статус Disabled или Active. Элемент управления Roles позволяет добавлять и удалять определенные роли пользователя и, таким образом, контролировать права, назначенные пользователю. Пользователю может быть назначена одна или несколько ролей, которые, в свою очередь, могут содержать ссылки на другие роли или отдельные права. Для получения дополнительной информации см. раздел Роли.
При редактировании кнопка More в заголовке позволяет выбрать пункт Change Password в выпадающем списке. Пароль может быть изменен в диалоговом окне, если пользователь управляется встроенной группой безопасности.
Примечание
Во избежание проблем с безопасностью убедитесь, что пароль пользователя admin изменен. В качестве альтернативы создайте других пользователей с правами администратора и отключите пользователя admin по умолчанию.
Роль по умолчанию (Default Role)#
Роль по умолчанию - это роль, которая автоматически присваивается всем аутентифицированным пользователям.
Чтобы включить добавление роли по умолчанию для всех аутентифицированных пользователей, создайте новую Capability с типом Default Role, как показано ниже; затем можно выбрать роль, которую хотите применить к пользователям.
После сохранения группа Default Role будет добавлена в активный список групп безопасности и начнет применять новую роль ко всем аутентифицированным пользователям.
Примечание
Роль по умолчанию добавляется к аутентифицированным пользователям динамически и не будет отображаться как назначенная какому-либо пользователю на странице администрирования пользователей.
Настройка раздельных ролей администратора для различных экземпляров Artifactory#
Назначения отдельных ролей для администрирования экземпляров раздельно решается через конфигурацию IAM proxy плагина:
Создать роль в Keycloak.SE (предлагаемый формат admin_role_arr_<ключ сервиса ci, cd итп>)
Опционально создать ПУЗ в Keycloak.SE и назначить ему эту роль
В админ панели артифактори создать или отредактировать capability IAM Proxy
В поле keycloak role of server admin внести название роли созданной в первом пункте
Удостовериться что в поле Tool type внесен корректный ключ сервиса

На рисунке ниже представлено окно с детальной настройкой роли администратора на конкретный экземпляр.

На нижепредставленных рисунках показан 3-й пункт настройки отдельных ролей администрирования.


Настройки для работы с OneWork#
Подробное описание настройки интеграции с Platform V Works::OneWork представлено в Руководстве по установке.
Как меняются сценарии использования при поставке с OneWork#
Основное изменение - это исключение манипуляций с ролями.
При поставке с OneWork все роли приходят снаружи и создаются адаптером (администратору не нужно создавать роли). Пользователю предоставлены внешние (Keycloak.SE) роли с префиксом «RealmGroup»: RealmGroup:/… Т.е пользователь имеет не прямую роль, а Realm, который включается в себя внутреннюю роль. Чтобы вручную изменить права (добавить или убрать привилегии) - администратору нужно зайти в локальную роль (без префикса) и там уже вносить необходимые изменения.
Пример использования можно посмотреть в разделе разберем-данный-пункт-на-примере-пользователя-test_user_4.
Сценарии использования с группами пользователей в Keycloak.SE#
Описание примера сценария использования с группами пользователей в Keycloak.SE есть в разделе Настройка раздельных ролей администратора для различных экземпляров Artifactory.
Настройка доступа существующих пользователей к репозиторию созданному вручную (мимо механизмов OneWork)#
Ручное создание прокси-репозитория#
Зайти в административную консоль модуля «Хранилище артефактов».
Создать два blob store которые будут входить в группу:
Зайти в раздел Blob stores и нажать кнопку Create blob store. Задать параметры type - File, name - имя (например bsf1) и нажать save.
Создать по аналогии второй такой же blob store (например с именем bsf2). Для второго указать путь на папку, находящуюся на смонтированном NFS разделе.

Создать blob store с типом group:
В поле members выбрать ранее созданные bsf1 и bsf2.
В поле Fill Policy выбрать Write to second member if file size exceeds limit. Заполняем Fill Policy File Size, указав предельный размер файла, при превышении которого начинает использоваться второй член группы (bsf2). Файлы размером меньше или равные указанному, будут записаны в bsf1.
Создать прокси репозиторий:
В поле blob store указать группу, созданную на шаге 3.

Создать привилегии типа Repository View:
Выбрать созданный репозиторий
Указать набор доступных для привилегии действий из набора: add, browse, read, edit, delete.

Добавить привилегии выбранной роли:
В разделе Privilieges нажать на Modify applied privileges и там выбрать нужную привилегию


Разберем данный пункт на примере пользователя: test_user_4:
Пользователь входит в 3 организации:
e2enexus,fcu2,fcu, поэтому ему доступны репозитории, начинающиеся с названийe2enexus,fcu.Fcu2репозиториев нет, так как их видимо не создали.Посмотрим на свойства и возможности пользователя
test_user_4в приложении nexus-ci со стороны администратора.Пользователю
test_user_4предоставлены внешние (Keycloak.SE) роли:RealmGroup:/
e2enexus_nci_rights_x(организация e2enexus, проект rights, права - запись)RealmGroup:/
fcu2_nci_gisupr_x(организация fcu2, проект gisupr, права - запись)RealmGroup:/
fcu2_nci_rights_x(организация fcu2, проект rights, права - запись)RealmGroup:/
fcu_nci_gisupr_a(организация fcu, проект gisupr, права — все)

В Keycloak.SE созданы группы:
e2enexus_nci_rights_x,fcu2_nci_gisupr_x,fcu2_nci_rights_x,fcu_nci_gisupr_a, которые мапятся в artifactory в роли RealmGroup:/e2enexus_nci_rights_x, RealmGroup:/fcu2_nci_gisupr_x, RealmGroup:/, RealmGroup:/fcu_nci_gisupr_a.
В внешние/примапленные роли добавлены локальные роли с таким же названием. Т.е. в внешнуюю роль RealmGroup:/
e2enexus_nci_rights_xдобавлена локальная роль e2enexus_nci_rights_x и т.д.Локальная роль e2enexus_nci_rights_x может содержать так же локальные роли или привилегии.

Создадим новый репозиторий (
test_new_repo_maven), к которому потом добавим доступ. Чтобы не путаться в названиях blob store и репозиториях, названия blob store и репозитория будут идентичны.После их создания нужно создать привилегию на просмотр и чтение репозитория
test_new_repo_maven.Привилегий несколько. Дело в том, что при создании любого репозитория, автоматически создаются привилегии следующих типов
nx-repository-admin-{type}-{repo_name}-{actions}иnx-repository-view-{type}-{repo_name}-{actions}для администрирования репозитория.Мы создали привилегию
test_new_repo_mavenс actions в видеread,browseи это эквивалентно тому, если бы мы использовали 2 привилегииnx-repository-view-mave2-test_new_repo_maven-readиnx-repository-view-mave2-test_new_repo_maven-browse.Создадим локальную роль
test_new_repo_maven, в которую добавим привилегиюtest_new_repo_maven(надо выбрать Nexus role, чтобы создать локальную роль.).
Роль
test_new_repo_mavenбудет содержать только одну привилегиюtest_new_repo_maven.Чтобы пользователь
test_user_4увидел новый репозиторийtest_new_repo_maven, необходимо добавить нашу локальную рольtest_new_repo_mavenв любую локальную роль, которая связана с внешней (Keycloak.SE) ролью, назначенной пользователюtest_user_4.Мы выяснили выше, что пользователю
test_user_4доступны 4 локальных роли:e2enexus_nci_rights_x,fcu2_nci_gisupr_x,fcu2_nci_rights_x,fcu_nci_gisupr_a.Возьмем роль
e2enexus_nci_rights_xи добавим ей, как вложенную, локальную рольtest_new_repo_maven. Как можно видеть из скриншота ниже, локальная рольtest_new_repo_mavenдоступна для добавления.
После добавления локальной роли
test_new_repo_mavenв локальную рольe2enexus_nci_rights_x, привилегии локальной ролиtest_new_repo_mavenделегируются локальной ролиe2enexus_nci_rights_xи соответственно доступны пользователюtest_user_4.После того, как роли настроены, пользователь
test_user_4может увидеть изменение в представлении репозиториев. В списке доступных репозиториев появился репозиторийtest_new_repo_maven.
Селекторы содержимого#
Селекторы содержимого предоставляют доступ к определенному содержимому или пространству имен из репозитория, а не ко всему хранилищу. Выбор содержимого осуществляется с помощью поисковых выражений, написанных на языке CSEL (Content Selector Expression Language). CSEL - это облегченная версия JEXL, используемая для написания запросов по определенным путям и координатам, доступным в форматах менеджера репозитория.
Селекторы содержимого определяют, к какому содержимому разрешен доступ пользователям. Задайте имя селектора с поисковым выражением для поиска всех компонентов, которые начинаются с указанного пути к компоненту.
После создания селектора содержимого его необходимо добавить к привилегии, чтобы распространить ее на конкретный репозиторий. Эта привилегия используется для предоставления доступа к данному пространству имен для роли, группы или пользователя.
Content Selector > Privilege > Role > Group > User
Best practices использования селекторов содержимого#
Селекторы содержимого лучше всего использовать для управления доступом на запись к пространствам имен команд в репозитории.
Селекторы содержимого не отменяют доступ, предоставленный другими правами или селекторами. Чтобы исключить доступ на чтение и запись к определенному содержимому, лучше всего переместить содержимое в частный репозиторий и ограничить права доступа к нему.
Групповые разрешения на репозиторий будут отменять более конкретные разрешения на чтение для включенных репозиториев.
Селекторы содержимого в высокодоступных развертываниях#
Работа селекторов содержимого зависит от среды. Для High Availability развертываний, использующих PostgreSQL, нельзя использовать регулярные выражения в селекторах содержимого. В средах без High Availability можно использовать регулярные выражения в селекторах содержимого.
Развертывания |
Поддерживаемые регулярные выражения |
|---|---|
PostgreSQL as HA |
не поддерживает регулярные выражения для поиска |
PostgreSQL without HA |
use |
Создание селектора содержимого#
Выберите Content Selectors, расположенные в Репозитории, в меню Администрирование.
Выберите Create selector, чтобы открыть диалог.
Введите Name и Description для селектора содержимого.
Используйте поле Выражение поиска для создания запроса с использованием синтаксиса CSEL.
Предварительный просмотр репозитория#
Просмотрите результаты поискового выражения, выбрав кнопку предварительного просмотра результатов. В предварительном просмотре будет отображено только 10 результатов.
Выберите репозиторий или группу репозиториев в раскрывающемся списке «Репозиторий предварительного просмотра».
Нажмите кнопку Preview.
Используйте фильтр, чтобы проверить конкретный результат;
Используйте столбец Name для сортировки результатов.
Нажмите Save, чтобы создать селектор содержимого
Справочник по селекторам содержимого#
Ниже приведены атрибуты селекторов содержимого, которые определяют путь и формат в качестве значений. Путь для asset должен начинаться с ведущего слеша.
Атрибут |
Допустимые значения |
|---|---|
path |
Путь к содержимому вашего репозитория со слешем в начале |
format |
Формат содержимого, для которого запрашиваете (указание формата не требуется) |
Операторы Content selector для High Availability Deployments#
Оператор |
Описание |
Пример |
|---|---|---|
== |
Точно соответствует тексту |
format == «raw» |
=^ |
Начинается с текста |
path =^ «/org/apache/commons/» |
and |
Соответствие всем выражениям |
format == «maven2» and path =^ «/org/apache/commons» |
or |
Соответствие любому выражению |
format == «maven2» or format == «npm» |
(expr) |
Группировка нескольких выражений |
format == «npm» or (format == «maven2» and path =^ «/org/apache/commons») |
Разрешения для просмотра деревьев#
Селекторы доступа к чтению должны предоставлять доступ к просмотру деревьев в Repository Manager UI. Селекторы содержимого должны включать разрешения на родительские каталоги артефактов.
Просмотр деревьев для высокодоступных (HA) сред:
(format == «maven2» and (path =^ «/» OR path =^ «/org/» OR path =^ «/org/apache/» OR path =^ «/org/apache/commons/»))
Пример регулярного выражения, включающего родительский каталог:
format == «maven2» and path =~ «/|/org/|/org/apache/|/org/apache/commons/.*»
В качестве альтернативы, чтобы пользователи могли видеть любое имя каталога (только не его содержимое), используйте следующее:
format== «maven2» и path =~».*/|/org/apache/commons.*»