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

Другие вопросы по тегам