Параметры в URL в формате Base64¶
В некоторых случаях, запросы к osa-proxy требуют указания дополнительных параметров прямо в пути URL. Это достигается путем передачи строки, закодированной в формате Base64 (URL-safe).
Правило¶
Закодированная строка параметров в формате Base64 должна быть размещена в пути URL сразу после имени репозитория.
Общая структура URL выглядит следующим образом:
https://<osaproxy-host>/<repository-name>/<base64-parameters>/<rest-of-path>
Где:
- <osaproxy-host>: Имя хоста экземпляра osa-proxy.
- <repository-name>: Имя репозитория, к которому осуществляется доступ.
- <base64-parameters>: Закодированная в URL-safe Base64 JSON-строка, содержащая параметры.
- <rest-of-path>: Оставшаяся часть пути исходного запроса к артефакту.
Пример¶
Например, нужно передать следующие параметры в виде JSON-объекта.
Для этого следует:
- Преобразовать JSON-объект в строку.
- Закодировать строку с использованием URL-safe Base64.
Результат кодирования JSON-объекта выше в Base64:
eyJyZXBvTWFuYWdlckhvc3QiOiJodHRwczovL25leHVzLnRlc3QucnUiLCJyZXBvTmFtZSI6Im5wbS1wcm94eSJ9
Настройка менеджеров пакетов¶
Чтобы постоянно использовать URL с параметрами в формате Base64 для всех запросов, необходимо обновить конфигурационный файл вашего менеджера пакетов.
NPM¶
Для NPM нужно отредактировать файл .npmrc и установить ключ registry.
URL должен включать имя репозитория и строку, закодированную в Base64.
registry=https://osaproxy.example.com/npm-proxy/eyJyZXBvTWFuYWdlckhvc3QiOiJodHRwczovL25leHVzLnRlc3QucnUiLCJyZXBvTmFtZSI6Im5wbS1wcm94eSJ9
Maven¶
Для Maven нужно отредактировать файл settings.xml. Вы можете добавить новое <mirror> в секцию <mirrors>.
Тег <url> должен содержать полный URL, включая имя репозитория и строку, закодированную в Base64.
<settings>
...
<mirrors>
<mirror>
<id>osa-proxy-mirror</id>
<mirrorOf>*</mirrorOf>
<url>https://osaproxy.example.com/my-maven-repo/eyJyZXBvTWFuYWdlckhvc3QiOiJodHRwczovL25leHVzLnRlc3QucnUiLCJyZXBvTmFtZSI6Im5wbS1wcm94eSJ9/maven2</url>
</mirror>
</mirrors>
...
</settings>
Убедитесь, что значение <mirrorOf> соответствует репозиториям, которые вы хотите проксировать.
Go¶
Для Go установите переменную окружения GOPROXY, чтобы она включала имя репозитория и строку, закодированную в Base64.
export GOPROXY="https://osaproxy.example.com/go-repo/eyJyZXBvTWFuYWdlckhvc3QiOiJodHRwczovL25leHVzLnRlc3QucnUiLCJyZXBvTmFtZSI6ImdvLXJlcG8ifQ"
Debian¶
Для Debian нужно отредактировать файл /etc/apt/sources.list или файл в /etc/apt/sources.list.d/. Обновите поле URIs.
Types: deb
URIs: https://osaproxy.example.com/debian-repo/eyJyZXBvTWFuYWdlckhvc3QiOiJodHRwczovL25leHVzLnRlc3QucnUiLCJyZXBvTmFtZSI6ImRlYmlhbi1yZXBvIn0=
Suites: stable
Components: main
Signed-By: /path/to/key.gpg
NuGet¶
Для NuGet отредактируйте файл NuGet.config и добавьте новый источник пакетов. Атрибут value тега <add> должен содержать полный URL.
<configuration>
<packageSources>
<add key="osa-proxy" value="https://osaproxy.example.com/nuget-repo/eyJyZXBvTWFuYWdlckhvc3QiOiJodHRwczovL25leHVzLnRlc3QucnUiLCJyZXBvTmFtZSI6Im51Z2V0LXJlcG8ifQ/index.json" />
</packageSources>
...
</configuration>
PyPI¶
Для PyPI отредактируйте файл pip.conf (Linux/macOS) или pip.ini (Windows) и установите index-url.
[global]
index-url = https://osaproxy.example.com/pypi-repo/eyJyZXBvTWFuYWdlckhvc3QiOiJodHRwczovL25leHVzLnRlc3QucnUiLCJyZXBvTmFtZSI6InB5cGktcmVwbyJ9/simple
Передача контекста для корректной работы политик безопасности привязаных к репозиториям Nexus и Artifactory¶
Клиент разработчика -> Nexus / Artifactory -> osa-proxy -> Интернет
Для передачи контекстной информации, включающей хост и имя репозитория вашего менеджера репозиториев, эти данные следует интегрировать в Base64-кодированную строку параметров. Важно строго соблюдать правило, согласно которому данная Base64-строка должна располагаться непосредственно после имени репозитория в URL-адресе.
Nexus¶
- Перейдите в Server Administration -> Repositories.
- Выберите желаемый тип (например,
maven2 (proxy)). - В поле Remote storage введите URL вашего экземпляра
osa-proxy, включая имя репозитория и параметры, закодированные в Base64.
Пример для прокси-репозитория Maven:
https://osaproxy.example.com/internet-maven/eyJyZXBvTWFuYWdlckhvc3QiOiJodHRwczovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIiLCJyZXBvTmFtZSI6ImludGVybmV0LW1hdmVuIn0
Artifactory¶
- Перейдите в Administration -> Repositories -> Remote.
- В конфигурации установите поле URL на URL
osa-proxy. Этот URL должен включать имя репозитория и строку, закодированную в Base64.
Пример для удаленного репозитория PyPI:
https://osaproxy.example.com/internet-pypi/eyJyZXBvTWFuYWdlckhvc3QiOiJodHRwczovL3B5cGkub3JnL3NpbXBsZSIsInJlcG9OYW1lIjoiaW50ZXJuZXQtcHlwaSJ9