Контроль доступа#

Внимание

Данный раздел переведен с использованием инструментов машинного перевода

В Artifactory используется управление доступом на основе ролей (RBAC), чтобы предоставить администраторам контроль над правами пользователей на следующее:

  1. Доступ к веб-приложению Artifactory;

  2. Доступ на чтение к пути компонента в репозитории;

  3. Доступ администратора к конфигурации;

  4. Публикация или загрузка файлов в репозиторий.

Конфигурация по умолчанию поставляется с ролью администратора и дополнительным анонимным доступом для просмотра и чтения всех репозиториев.

Примечание

Роль администратора по умолчанию предоставляет права на все аспекты системы Artifactory и использует имя пользователя admin. Начальный пароль находится в файле admin.password в каталоге $data-dir после запуска.

Контроль доступа на основе ролей#

В Artifactory используется RBAC для назначения доступа на основе роли пользователя. Следуя принципу минимальных привилегий, доступ предоставляется только на основе функциональности, необходимой для выполнения его работы. Также можно согласовать роли Artifactory с внешними ролями и группами, управляемыми службами каталогов вашей организации.

Ниже приведен краткий пример адаптации новых сотрудников команды разработки:

  1. Команде разработчиков Apollo необходим доступ к размещенному репозиторию с именем dev-apollo. Члены группы назначены в корпоративной Active Directory.

  2. Администратор Artifactory создает новую роль с именем team-apollo и назначает ее группе Apollo из Active Directory. Процесс создания роли описан в разделе Создание ролей.

  3. Администратор добавляет в роль 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

nexus:{name}:{actions}

create,read,update,delete

Привилегии типа Application чаще всего являются встроенными привилегиями, которые управляют доступом к определенным функциональным областям продукта в пользовательском интерфейсе администрирования. Например, nexus:blobstore:create,read означает, что позволяет создавать и редактировать Blob store

repository-admin

nexus:repository-admin:{format}:{repository}:{actions}

browse,read,edit,add,delete

Права администратора репозитория управляют администрированием конфигурации для определенных репозиториев или форматов репозиториев. Эти права не контролируют доступ к содержимому репозитория

repository-content-selector

nexus:repository-content-selector:{selector}:{format}:{repository}:{actions}

browse,read,edit,add,delete

Права Repository Content Selector обеспечивают тонкую настройку прав доступа к содержимому репозитория с помощью селектора содержимого. Например, nexus:repository-content-selector:*:maven2:*:read означает разрешение пользователю доступа на чтение к любому содержимому, соответствующему селектору содержимого, определенному для формата maven2.

repository-view

nexus:repository-view:{format}:{repository}:{actions}

browse,read,edit,add,delete

Права Repository View контролируют общий доступ ко всему содержимому, содержащемуся в определенных репозиториях или форматах репозиториев. Например, nexus:repository-view:maven2:central:browse,read означает разрешение на просмотр содержимого репозитория формата maven2 с именем central. Эти права не позволяют изменять конфигурацию репозитория.

script

nexus:script:{script name}:{actions}

browse,read,edit,add,delete,run

Права сценария контролируют доступ к использованию REST API, связанных с Groovy Script, как описано в разделе REST и Integration API. Эти права не контролируют общий доступ к REST API. Например, nexus:script:*:read означает разрешение доступа на чтение ко всем скриптам с любым именем. nexus:script:my-uploaded-script:run означает разрешение пользователю запустить (выполнить) скрипт с именем my-uploaded-script

wildcard

*

*

Привилегии Wildcard позволяют построить строку привилегий, используя серию сегментов в произвольной форме. Все остальные типы привилегий являются более конкретными сегментными формами привилегий с подстановочным знаком. По умолчанию включена только одна привилегия с подстановочным знаком nx-all и разрешением nexus:*, которая предоставляет доступ ко всей функциональности

Разрешения прав доступа#

Права представляются в виде списка текстовых сегментов, разделенных двоеточиями (без пробелов после двоеточий), каждый сегмент может быть одним из следующих:

  • одно текстовое значение;

  • список текстовых значений, разделенных запятой;

  • символ «*» (звездочка) - для обозначения всех значений в данном сегменте.

Действия с правами#

Действия — функции, разрешающие явное поведение, которое привилегия может выполнять с соответствующей функцией.

При создании новых прав нужно назначить одно или несколько действий, при назначении нескольких действий разделяйте каждое действие запятой, но не используйте пробелы после запятых (например, «add,browse,create»). Используйте любое из этих действий, каждое будет выполнять подразумеваемое действие. Рассмотрим, как ведет себя каждое действие при применении к типу прав:

Действие

Описание

add

Это действие позволяет добавлять содержимое репозитория или скрипты

browse

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

create

Это действие позволяет создавать применимые конфигурации в менеджере репозиториев. Поскольку для просмотра конфигурации требуется разрешение на чтение, это действие связано с большинством существующих прав на создание

delete

Это действие дает права на удаление конфигураций менеджера репозитория, содержимого репозитория и скриптов. Действие чтения обычно связано с действием удаления, поэтому агент может просматривать эти конфигурации, чтобы удалить их

edit

Это действие дает права на изменение скриптов, содержимого репозитория и настроек.

read

Это действие дает права на просмотр различных списков конфигурации и скриптов. Без read любое связанное с ним действие позволит привилегии видеть эти списки, но не их содержимое. Действие read также позволяет привилегиям использовать инструменты, которые могут просматривать содержимое из командной строки

update

Это действие позволяет привилегиям обновлять конфигурации менеджера репозитория. Большинство существующих прав с обновлением включают действие чтения. Поэтому при создании пользовательских прав с update пользователь должен рассмотреть возможность добавления read к привилегии, чтобы просматривать обновления конфигурации менеджера репозитория

*

Это действие представляет собой подстановочный знак, дающий возможность группировать все действия вместе

Создание права#

Нажмите кнопку Create privilege, чтобы просмотреть список типов привилегий, как показано на рисунке ниже:

create-privilege

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

Пример: Создание права приложения#

В следующем примере создается привилегия типа Application:

application-privilege

Права и групповые репозитории#

Можно назначить права пользователям и любой назначенной роли, чтобы они имели доступ только для чтения к определенному репозиторию группы. По умолчанию эти права позволяют пользователям просматривать содержимое только через назначенную группу.

Кроме того, пользователи не могут получить доступ к содержимому группового репозитория через членов группы, если репозиторию не назначены те же права, что и группе.

Если пользователь получает право доступа к групповому репозиторию, то он также будет иметь право доступа ко всем транзитивным членам группового репозитория. Прямые запросы отдельных членов группы будут работать только в том случае, если пользователю дано явное разрешение на доступ к этому репозиторию.

Администраторы групп также должны иметь права как на группу, так и на всех ее членов, чтобы управлять конфигурацией группы.

Управление разрешениями селектора#

В рамках настройки безопасности можно создать права пользователей для управления фильтрами, созданными в форме Create Selector. Для этого создается привилегия, которая контролирует операции над компонентами, соответствующими данному селектору. Привилегия может распространяться даже на несколько репозиториев.

  1. Чтобы создать новую привилегию для селектора содержимого, выберите Привилегии в разделе Безопасность на панели администрирования.

  2. Выберите кнопку Create Privilege.

  3. Найдите и выберите Repository Content Selector из списка опций в Select Privilege Type.

  4. Появится форма, в которой отображается следующее:

    • Name — Создайте имя для привилегии «Селектор содержимого».

    • Description — Добавьте краткое описание привилегии.

    • Content Selector — Используйте этот выпадающий список для выбора из списка созданных селекторов.

    • Repository — Используйте этот выпадающий список для выбора диапазона всех репозиториев, отдельного формата или созданных репозиториев.

    • Actions — Предоставьте права просмотра, чтения, редактирования, удаления, создания, обновления или * для управления доступом пользователей.

  5. Сохраните новую привилегию, выбрав Create privilege

Можно использовать новую привилегию для регулирования допустимых данных, к которым хотите предоставить доступ пользователю. Можно сгруппировать все связанные права в роль, как описано в разделе Роли.

Роли#

Роли объединяют права в связанный контекст и могут быть сгруппированы для создания более сложных ролей.

Чтобы создать роли и управлять ими, перейдите в раздел АдминистрированиеSecurityRoles.

Примечание

Для доступа к экрану «Роли» необходимо иметь права nx- ролей или nx-all.

Чтобы создавать, редактировать или удалять роли, нужно обладать привилегией nx-privilege-read или nx-all.

Artifactory поставляется с предопределенными ролями администратора и анонима, которые уже видно в списке, появляющемся на этом экране. Эти роли редактировать или удалять не получится.

roles

Создание ролей#

Чтобы создать новую роль, выполните следующие действия:

  1. Выберите кнопку Create role на странице Roles.

  2. Выберите подходящий вариант в раскрывающемся меню Role Type, обычно это будет роль для любой роли, которую создаете вручную.

  3. В форме настройки роли укажите идентификатор роли и имя роли. По желанию укажите описание роли.

    create-role

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

    privileges-selection

  5. Появится всплывающее окно, в котором можно выбрать и отменить права, предоставленные этой роли. Можно использовать фильтр для поиска прав, которые нужно применить. Можно увидеть все выбранные права, отсортировав их с помощью флажка Select column. После выбора прав, которые будут применены к этой роли, нажмите кнопку Confirm .

  6. Если хотите применить существующую роль к этой новой роли, выберите кнопку Modify Applied Roles в разделе Applied Roles. Появится модальное окно, в котором можно выбрать или отменить выбор других ролей для применения к этой новой роли. Также можно использовать фильтр для поиска других ролей.

  7. После выбора ролей для применения к этой роли выберите кнопку Confirm.

  8. Выберите кнопку Save, чтобы сохранить новую роль.

Управление ролями#

Чтобы управлять существующей ролью, выполните следующие действия:

  1. Выберите роль, которую хотите изменить, из списка на главной странице Roles.

  2. Можете редактировать имя и описание роли, однако не получится изменить ID роли.

  3. В разделе Applied Privileges выберите Modify Applied Privileges, чтобы управлять применяемыми правами роли. Появится модальное окно, в котором можно выбрать и удалить права, предоставленные этой роли. Также можно использовать фильтр для поиска применяемых прав.

  4. После внесения изменений в применяемые права нажмите кнопку Confirm.

  5. Если необходимо уточнить, какие разрешения применяются к этой роли, нажмите кнопку Modify Applied Roles в разделе Applied Roles. Появится модальное окно, в котором можно выбрать или отменить выбор других ролей, которые будут применены к этой новой роли. Вы также можете использовать фильтр для поиска других подходящих ролей.

  6. После выбора разрешений для применения к этой роли нажмите кнопку Confirm.

  7. Нажмите кнопку Save, чтобы сохранить изменения, внесенные в эту роль.

Удаление ролей#

Чтобы удалить роль, выполните следующие действия:

  1. Выберите роль, которую хотите удалить, из списка на главной странице Roles.

  2. В нижней части формы нажмите кнопку Delete. Появится всплывающее окно с запросом на подтверждение удаления роли.

  3. Выберите Confirm, чтобы подтвердить удаление.

Пользователи#

По умолчанию менеджер репозиториев поставляется с двумя пользователями: admin и anonymous. Пользователь admin имеет все права, а анонимный пользователь имеет права только на чтение. Начальный пароль для пользователя admin можно найти в файле admin.password, расположенном в каталоге $data-dir после запуска сервера.

Вид функции Users можно получить через пункт Users в разделе Security меню Administration. Для просмотра этой страницы пользователи должны иметь права nx-users или nx-all. При загрузке страницы выбран источник безопасности Default, который представляет локальная группа NXRM. В отфильтрованном списке отображаются идентификатор пользователя, имя, фамилия, электронная почта и статус пользователей из источника безопасности, выбранного в раскрывающемся списке.

users

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

Примечание

Чтобы использовать функции создания, редактирования и удаления пользователей, пользователю без права nx-all также потребуется nx-roles-read. Это связано с тем, что на странице пользователей перечислены роли.

create-user

ID может быть задан при первом создании и в дальнейшем остается неизменным. Кроме того, можно указать имя, фамилию и адрес электронной почты пользователя. Также необходимо ввести и подтвердить пароль.

Статус позволяет установить для учетной записи статус Disabled или Active. Элемент управления Roles позволяет добавлять и удалять определенные роли пользователя и, таким образом, контролировать права, назначенные пользователю. Пользователю может быть назначена одна или несколько ролей, которые, в свою очередь, могут содержать ссылки на другие роли или отдельные права. Для получения дополнительной информации см. раздел Роли.

При редактировании кнопка More в заголовке позволяет выбрать пункт Change Password в выпадающем списке. Пароль может быть изменен в диалоговом окне, если пользователь управляется встроенной группой безопасности.

Примечание

Во избежание проблем с безопасностью убедитесь, что пароль пользователя admin изменен. В качестве альтернативы создайте других пользователей с правами администратора и отключите пользователя admin по умолчанию.

Роль по умолчанию (Default Role)#

Роль по умолчанию - это роль, которая автоматически присваивается всем аутентифицированным пользователям.

Чтобы включить добавление роли по умолчанию для всех аутентифицированных пользователей, создайте новую Capability с типом Default Role, как показано ниже; затем можно выбрать роль, которую хотите применить к пользователям.

После сохранения группа Default Role будет добавлена в активный список групп безопасности и начнет применять новую роль ко всем аутентифицированным пользователям.

Примечание

Роль по умолчанию добавляется к аутентифицированным пользователям динамически и не будет отображаться как назначенная какому-либо пользователю на странице администрирования пользователей.

Настройка раздельных ролей администратора для различных экземпляров Artifactory#

Назначения отдельных ролей для администрирования экземпляров раздельно решается через конфигурацию IAM proxy плагина:

  1. Создать роль в Keycloak.SE (предлагаемый формат admin_role_arr_<ключ сервиса ci, cd итп>)

  2. Опционально создать ПУЗ в Keycloak.SE и назначить ему эту роль

  3. В админ панели артифактори создать или отредактировать capability IAM Proxy

    • В поле keycloak role of server admin внести название роли созданной в первом пункте

    • Удостовериться что в поле Tool type внесен корректный ключ сервиса

keycloak

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

keycloak-settings

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

IAM

IAM-settings

Настройки для работы с OneWork#

Подробное описание настройки интеграции с Platform V Works::OneWork представлено в Руководстве по установке.

Как меняются сценарии использования при поставке с OneWork#

Основное изменение - это исключение манипуляций с ролями.

При поставке с OneWork все роли приходят снаружи и создаются адаптером (администратору не нужно создавать роли). Пользователю предоставлены внешние (Keycloak.SE) роли с префиксом «RealmGroup»: RealmGroup:/… Т.е пользователь имеет не прямую роль, а Realm, который включается в себя внутреннюю роль. Чтобы вручную изменить права (добавить или убрать привилегии) - администратору нужно зайти в локальную роль (без префикса) и там уже вносить необходимые изменения.

Пример использования можно посмотреть в разделе разберем-данный-пункт-на-примере-пользователя-test_user_4.

Сценарии использования с группами пользователей в Keycloak.SE#

Описание примера сценария использования с группами пользователей в Keycloak.SE есть в разделе Настройка раздельных ролей администратора для различных экземпляров Artifactory.

Настройка доступа существующих пользователей к репозиторию созданному вручную (мимо механизмов OneWork)#

Ручное создание прокси-репозитория#

  1. Зайти в административную консоль модуля «Хранилище артефактов».

  2. Создать два blob store которые будут входить в группу:

    • Зайти в раздел Blob stores и нажать кнопку Create blob store. Задать параметры type - File, name - имя (например bsf1) и нажать save.

    • Создать по аналогии второй такой же blob store (например с именем bsf2). Для второго указать путь на папку, находящуюся на смонтированном NFS разделе.

    Create Blob Store

  3. Создать blob store с типом group:

    • В поле members выбрать ранее созданные bsf1 и bsf2.

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

  4. Создать прокси репозиторий:

    В поле blob store указать группу, созданную на шаге 3.

    create proxy

  5. Создать привилегии типа Repository View:

    • Выбрать созданный репозиторий

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

  6. Добавить привилегии выбранной роли:

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

    applied priv

    priv selection

    Разберем данный пункт на примере пользователя: 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, права — все)

    example1

    В 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.

    example2

    В внешние/примапленные роли добавлены локальные роли с таким же названием. Т.е. в внешнуюю роль RealmGroup:/e2enexus_nci_rights_x добавлена локальная роль e2enexus_nci_rights_x и т.д.

    Локальная роль e2enexus_nci_rights_x может содержать так же локальные роли или привилегии.

    example3

    Создадим новый репозиторий (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, чтобы создать локальную роль.).

    example4

    Роль 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 доступна для добавления.

    example5

    После добавления локальной роли 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.

    example6

Селекторы содержимого#

Селекторы содержимого предоставляют доступ к определенному содержимому или пространству имен из репозитория, а не ко всему хранилищу. Выбор содержимого осуществляется с помощью поисковых выражений, написанных на языке 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 PostgreSQL regular expressions

Создание селектора содержимого#

  1. Выберите Content Selectors, расположенные в Репозитории, в меню Администрирование.

  2. Выберите Create selector, чтобы открыть диалог.

  3. Введите Name и Description для селектора содержимого.

  4. Используйте поле Выражение поиска для создания запроса с использованием синтаксиса CSEL.

Предварительный просмотр репозитория#

Просмотрите результаты поискового выражения, выбрав кнопку предварительного просмотра результатов. В предварительном просмотре будет отображено только 10 результатов.

  1. Выберите репозиторий или группу репозиториев в раскрывающемся списке «Репозиторий предварительного просмотра».

  2. Нажмите кнопку Preview.

    • Используйте фильтр, чтобы проверить конкретный результат;

    • Используйте столбец Name для сортировки результатов.

  3. Нажмите 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.*»