Micronaut: субъект аутентификации сгенерирован в теле запроса
Я пытаюсь сгенерировать код клиента с помощью swagger-codegen с сервера Micronaut. Проблема возникает с аутентифицированными маршрутами POST и PUT (он отлично работает для GET a DELETE).
Когда у меня есть такой метод в контроллере:
@Override
@Post("/")
public Single<? extends HttpResponse> updateStatus(Authentication authentication, GameReference gameReference) {
// ...
}
Результирующая чванство для этого метода выглядит следующим образом:
post:
tags:
- /presence
description: Updates status
operationId: updateStatus
parameters: []
requestBody:
content:
application/json:
schema:
type: object
properties:
authentication:
$ref: '#/components/schemas/Authentication'
gameReference:
$ref: '#/components/schemas/GameReference'
required: true
responses:
default:
description: HTTP 204 for successful updates.
content:
application/json: {}
Таким образом, принципал аутентификации был встроен в тело запроса, и в сгенерированном клиентском коде параметры этого метода были бы объектом как с аутентификацией, так и с GameReference.
Что я пытался обойти эту проблему:
- Добавьте @Parameter(hidden = true) перед параметром Аутентификация. Ничего не изменилось.
- Игра с чванливыми аннотациями для аутентификации, такими как @SecuritySchema и @SecurityDefention. Принцип аутентификации все еще генерируется в чванливом yaml.
Это ошибка в реализации Micronauts Swagger или есть способ обойти это? Обратите внимание, что это хорошо работает для GET и DELETE. Там принцип аутентификации игнорируется.
1 ответ
Команда Micronaut приняла сообщение об ошибке: https://github.com/micronaut-projects/micronaut-core/issues/1155