Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .bsl-language-server.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
"diagnostics": {
"LatinAndCyrillicSymbolInWord": false,
"parameters": {
"PublicMethodsDescription": false,
"Typo": {
"userWordsToIgnore": "Автосохранение, Автосохранения, автосохранения, Бьютифицировать, Бьютифицированный, Асинх, Сериализовать, сериализовать, СериализоватьПараметрыАвторизацииИзЗначения, Апи, КлючАпи"
"userWordsToIgnore": "Автосохранение, Автосохранения, автосохранения, Бьютифицировать, Бьютифицированный, Асинх, Сериализовать, сериализовать, СериализоватьПараметрыАвторизацииИзЗначения, Апи, КлючАпи, Автозаголовки, Автозаголовков, автозаголовки, автозаголовков"
}
}
}
Expand Down
21 changes: 20 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ Versions correspond to git tags (`v_X_Y_Z` tag → `X.Y.Z` version); see

## [Unreleased]

## [1.3.25] - 2026-08-07

<a name="changelog-1-3-25-en"></a>

### Added

- Automatic request headers (issue #22): `Content-Type` by body mode
Expand All @@ -39,6 +43,11 @@ Versions correspond to git tags (`v_X_Y_Z` tag → `X.Y.Z` version); see
`Authorization: Bearer …` prefix (issue #12). Generic **Token** kept for a custom
prefix (UI label: «Токен (свой префикс)»). Postman `bearer` import/export maps to
`BearerToken`.
- Authorization type **JWT Bearer** (`JwtBearer`, issue #13): HS256/HS512 via
platform `ХешированиеДанных` + HMAC (RFC 2104), fields `algorithm` / `secret` /
`claims` (JSON) / `ttlSeconds` (`iat`/`exp` when TTL > 0). Auth schema and crypto
live in the data processor object module (shared by main and collection forms).
Postman `jwt` import/export maps for HS*.

## [1.3.24] - 2026-08-04

Expand Down Expand Up @@ -228,6 +237,10 @@ Versions correspond to git tags (`v_X_Y_Z` tag → `X.Y.Z` version); see

## [Unreleased]

## [1.3.25] - 2026-08-07

<a name="changelog-1-3-25-ru"></a>

### Добавлено

- Автоматические заголовки запроса (issue #22): `Content-Type` по типу тела
Expand All @@ -244,6 +257,11 @@ Versions correspond to git tags (`v_X_Y_Z` tag → `X.Y.Z` version); see
префикс `Authorization: Bearer …` (issue #12). Generic **Token** сохранён для
своего префикса (в UI: «Токен (свой префикс)»). Импорт/экспорт Postman `bearer`
соответствует `BearerToken`.
- Тип авторизации **JWT Bearer** (`JwtBearer`, issue #13): HS256/HS512 через
`ХешированиеДанных` платформы + HMAC (RFC 2104), поля `algorithm` / `secret` /
`claims` (JSON) / `ttlSeconds` (`iat`/`exp` при TTL > 0). Схема авторизации и
крипто вынесены в модуль объекта обработки (общие для основной формы и
коллекции). Импорт/экспорт Postman `jwt` для HS*.

## [1.3.24] - 2026-08-04

Expand Down Expand Up @@ -429,7 +447,8 @@ Versions correspond to git tags (`v_X_Y_Z` tag → `X.Y.Z` version); see

- Разные исправления стабильности.

[Unreleased]: https://github.com/LunatikDG/GetManHTTP/compare/v_1_3_24...HEAD
[Unreleased]: https://github.com/LunatikDG/GetManHTTP/compare/v_1_3_25...HEAD
[1.3.25]: https://github.com/LunatikDG/GetManHTTP/compare/v_1_3_24...v_1_3_25
[1.3.24]: https://github.com/LunatikDG/GetManHTTP/compare/v_1_3_23...v_1_3_24
[1.3.23]: https://github.com/LunatikDG/GetManHTTP/compare/v_1_3_22...v_1_3_23
[1.3.22]: https://github.com/LunatikDG/GetManHTTP/compare/v_1_3_21...v_1_3_22
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[![License](https://img.shields.io/badge/license-GPL--3.0-blue)](https://github.com/LunatikDG/GetManHTTP/blob/main/LICENSE.txt)
[![1C Version](https://img.shields.io/badge/1С-8.3.26%2B-orange)](#)
[![Release](https://img.shields.io/badge/release-1.3.24-red)](https://github.com/LunatikDG/GetManHTTP/releases)
[![Release](https://img.shields.io/badge/release-1.3.25-red)](https://github.com/LunatikDG/GetManHTTP/releases)
[![BSL Lint](https://github.com/LunatikDG/GetManHTTP/actions/workflows/bsl-lint.yml/badge.svg)](https://github.com/LunatikDG/GetManHTTP/actions/workflows/bsl-lint.yml)

<p align="center">
Expand Down Expand Up @@ -57,8 +57,8 @@ indicator, response headers and formatted body.

![Response panel](docs/images/response-panel.png)

**Authorization** — type selector (Basic / Token / Bearer Token / API Key) with fields that adapt to
the chosen type.
**Authorization** — type selector (Basic / Token / Bearer Token / API Key / JWT Bearer) with fields that adapt to
the selected scheme. JWT Bearer signs HS256/HS512 locally (no crypto provider required).

![Authorization fields](docs/images/auth-fields.png)

Expand Down Expand Up @@ -222,8 +222,8 @@ GetManHTTP — это HTTP-клиент, оформленный как **вне

![Панель ответа](docs/images/response-panel.png)

**Авторизация** — выбор типа (Basic / Token / Bearer Token / API Key) с полями, которые меняются в
зависимости от выбранного типа.
**Авторизация** — выбор типа (Basic / Token / Bearer Token / API Key / JWT Bearer) с полями, которые меняются в
зависимости от схемы. JWT Bearer подписывает HS256/HS512 локально (криптопровайдер не нужен).

![Поля авторизации](docs/images/auth-fields.png)

Expand Down
2 changes: 2 additions & 0 deletions docs/collection-format.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ Portable authorization object (collection, folder, or request).
| `Token` | collection, folder, request | `tokenPrefix`, `token` | Sent as `Authorization: {tokenPrefix} {token}`. Default prefix when empty at apply time: `Token`. `token` is secret. |
| `BearerToken` | collection, folder, request | `token` | Sent as `Authorization: Bearer {token}` (fixed prefix, RFC 6750). `token` is secret. |
| `ApiKey` | collection, folder, request | `key`, `value`, `addTo` | `addTo`: `Header` (default) or `Query`. Default `key` name: `X-API-Key`. `value` is secret. |
| `JwtBearer` | collection, folder, request | `algorithm`, `secret`, `claims`, `ttlSeconds` | Builds JWT (HS256/HS512) and sends `Authorization: Bearer {jwt}`. `algorithm` default `HS256`; `claims` is a JSON object string; `ttlSeconds` &gt; 0 sets `iat`/`exp` (Unix). `secret` is secret. |
| `InheritFromOwner` | folder, request | _(none)_ | Walk up folder → collection auth. **Not** valid as collection root auth (importers coerce unsupported types to the context default). |

---
Expand Down Expand Up @@ -377,6 +378,7 @@ v2.1: файлы Postman определяются отдельно и преоб
| `Token` | коллекция, папка, запрос | `tokenPrefix`, `token` | Заголовок `Authorization: {tokenPrefix} {token}`. Префикс по умолчанию при применении: `Token`. `token` — секрет. |
| `BearerToken` | коллекция, папка, запрос | `token` | Заголовок `Authorization: Bearer {token}` (фиксированный префикс, RFC 6750). `token` — секрет. |
| `ApiKey` | коллекция, папка, запрос | `key`, `value`, `addTo` | `addTo`: `Header` (по умолчанию) или `Query`. Имя ключа по умолчанию: `X-API-Key`. `value` — секрет. |
| `JwtBearer` | коллекция, папка, запрос | `algorithm`, `secret`, `claims`, `ttlSeconds` | Собирает JWT (HS256/HS512) и шлёт `Authorization: Bearer {jwt}`. `algorithm` по умолчанию `HS256`; `claims` — JSON-объект строкой; `ttlSeconds` &gt; 0 задаёт `iat`/`exp` (Unix). `secret` — секрет. |
| `InheritFromOwner` | папка, запрос | _(нет)_ | Наследование папка → коллекция. На корне коллекции не используется. |

---
Expand Down
Binary file modified docs/images/auth-fields.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/main-form.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 10 additions & 1 deletion src/ExternalDataProcessors/GetManHTTP/Forms/Форма/Form.form
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<title>
<key>ru</key>
<value>GetManHTTP (HTTP-клиент): v1.3.24</value>
<value>GetManHTTP (HTTP-клиент): v1.3.25</value>
</title>
<items xsi:type="form:FormGroup">
<name>ГруппаЛево</name>
Expand Down Expand Up @@ -2094,6 +2094,15 @@
<value>ApiKey</value>
</value>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>JWT Bearer</value>
</presentation>
<value xsi:type="core:StringValue">
<value>JwtBearer</value>
</value>
</choiceList>
</extInfo>
</items>
<visible>true</visible>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,8 @@ <h2>Настройка HTTP-запроса</h2>
<li>базовая — логин и пароль в HTTP-соединение;</li>
<li>по токену (свой префикс) — заголовок <code>Authorization</code> (префикс по умолчанию <code>Token</code>);</li>
<li>Bearer Token — заголовок <code>Authorization: Bearer …</code> (фиксированный префикс);</li>
<li>API Key — имя и значение ключа с выбором «добавить в заголовок» или «в Query-параметр».</li>
<li>API Key — имя и значение ключа с выбором «добавить в заголовок» или «в Query-параметр»;</li>
<li>JWT Bearer — генерация JWT (алгоритмы HS256/HS512), секрет, Claims (JSON), TTL для <code>iat</code>/<code>exp</code>; заголовок <code>Authorization: Bearer …</code>.</li>
</ul>
</li>
<li><strong>Тело запроса</strong> — варианты: отсутствует, JSON, XML, form-data (текстовые и файловые поля, несколько файлов в одном multipart; лимит размера тела 50&nbsp;МБ), двоичные данные (один файл целиком).</li>
Expand Down Expand Up @@ -124,7 +125,7 @@ <h2>Обратная связь</h2>

<p>Ошибки и предложения: <a href="https://github.com/LunatikDG/GetManHTTP">репозиторий на GitHub</a>, почта <code>main@lunatikdg.ru</code>, Telegram <a href="https://t.me/LunatikDG">@LunatikDG</a>.</p>

<p><em>Версия обработки: 1.3.24</em></p>
<p><em>Версия обработки: 1.3.25</em></p>

</body>
</html>
Loading
Loading