Micronaut: субъект аутентификации сгенерирован в теле запроса - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь сгенерировать код клиента с помощью 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) перед параметром Authentication.Ничего не изменилось.
  • Игра с чванливыми аннотациями для аутентификации, такими как @SecuritySchema и @SecurityDefention.Принцип аутентификации все еще генерируется в swamger yaml.

Это ошибка в реализации Micronauts Swagger или есть способ обойти это?Обратите внимание, что это хорошо работает для GET и DELETE.Там принцип аутентификации игнорируется.

1 Ответ

0 голосов
/ 23 января 2019

Команда Micronaut признала ошибку: https://github.com/micronaut-projects/micronaut-core/issues/1155

...